我有以下集成测试:
@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();
我发现测试在线冻结org.assertj.db.type.Changes#setStartPointNow
,t.getRowsList();
但我不知道如何解决它。
当我删除@Transactional
注释时,一切正常,没有任何冻结,但测试无法正常工作。
有没有办法解决这个问题保留@Transactional
注释?