【发布时间】:2018-07-17 09:04:56
【问题描述】:
我将一些项目从Springboot 1.5.10 迁移到2.0。
Springboot 2.0.3Release、JDK10、mysql、hikari-cp
完成这项工作后,在JUnit test,测试用例中的所有数据都保留在数据库中。我认为它不起作用@Tranactional - org.springframework.transaction.annotation.Transactional
这是application.yml 和测试类的一部分。
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
jpa:
show-sql: true
hibernate:
ddl-auto: none
database: mysql
database-platform: org.hibernate.dialect.MySQL5Dialect
这里是数据源。
@Configuration
@EnableTransactionManagement
public class DatasourceJPAConfig {
@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
}
这是 JUnit 测试类的一部分。
@Transactional
@Rollback(true)
@RunWith(SpringRunner.class)
@ActiveProfiles("local")
@SpringBootTest
public class RepoTests {
@Autowired
private TestRepository testRepository;
@Test
public void saveTest() {
var name = "test";
var description = "test description"
var item = TestDomain.builder()
.name(name)
.description(description)
.build();
testRepository.save(item);
var optional = testRepository.findById(item.getId());
assertTrue(optional.isPresent());
assertEquals(optional.get().getDescription(), description);
assertEquals(optional.get().getName(), name);
}
}
运行saveTest方法后,在数据库中增加1行。
【问题讨论】:
标签: spring-boot junit hikaricp