AssertJ DB在Spring Boot集成测试中冻结
我有以下集成测试:AssertJ DB在Spring Boot集成测试中冻结,spring,junit,spring-transactions,assertj,Spring,Junit,Spring Transactions,Assertj,我有以下集成测试: @RunWith(SpringRunner.class) @SpringBootTest @Transactional public class ServiceTestIT { @Autowired private ServiceUnderTest service; @Autowired private DataSource dataSource; @Before public void setup() {
@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.changesetstartpointnow中;线,但我不知道如何解决它
当我删除@Transactional annotation时,一切正常,并没有任何东西冻结,但测试无法正常工作
有什么方法可以解决这个问题吗?请尝试:
@Test
public void test() {
Changes changes = new Changes(new Table(datasource, "SOME_TABLE")).setStartPointNow();
service.doSomething();
changes.setEndPointNow();
// assert database changes with changes object
}
请尝试:
@Test
public void test() {
Changes changes = new Changes(new Table(datasource, "SOME_TABLE")).setStartPointNow();
service.doSomething();
changes.setEndPointNow();
// assert database changes with changes object
}
在我的情况下,问题是大桌子。我在看超过10000行的桌子上的变化 更改=新更改新表源, big_table.setStartPointNow 当我把它改成: 请求1=新的请求源, 从某个_列为空的大_表中选择* SQL返回的行数少于100行
变化很快就开始起作用。当在桌子上观看变化时,时间在17-25秒之间。请求小于0,2秒。在我的情况下,问题是大表。我在看超过10000行的桌子上的变化 更改=新更改新表源, big_table.setStartPointNow 当我把它改成: 请求1=新的请求源, 从某个_列为空的大_表中选择* SQL返回的行数少于100行
变化很快就开始起作用。当在桌子上观看变化时,时间在17-25秒之间。请求小于0,2秒。问题仍然出现,您能解释一下您的方法的主要变化吗?问题仍然出现,您能解释一下您的方法的主要变化吗?