Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AssertJ DB在Spring Boot集成测试中冻结_Spring_Junit_Spring Transactions_Assertj - Fatal编程技术网

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秒。

问题仍然出现,您能解释一下您的方法的主要变化吗?问题仍然出现,您能解释一下您的方法的主要变化吗?