【发布时间】:2018-02-07 05:18:00
【问题描述】:
我有以下集成测试:
@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class ServiceTestIT {
@Autowired
private ServiceUnderTest service;
@Autowired
private DataSource dataSource;
@Before
public void setup() {
Changes changes = new Changes(new Table(datasource, "SOME_TABLE"));
changes.setStartPointNow();
}
@Test
public void test() {
service.doSomething();
changes.setEndPointNow();
// assert database changes with changes object
}
}
当我运行这个测试时,它会冻结在 @Before 方法中的更改起点行:
changes.setStartPointNow();
我发现测试在t.getRowsList(); 行的org.assertj.db.type.Changes#setStartPointNow 中冻结,但我不知道如何解决。
当我删除 @Transactional 注释时,一切正常,没有任何冻结,但测试无法正常工作。
有没有办法解决这个问题保留@Transactional注解?
【问题讨论】:
标签: spring junit spring-transactions assertj