我有以下集成测试:
@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
注释?
答案 0 :(得分:0)
请尝试:
ipList.append((address,))
答案 1 :(得分:0)
就我而言,这个问题很重要。我正在观看超过10 000行的桌面变化。
更改更改=新更改(新表(来源, " BIG_TABLE"))setStartPointNow();
当我将其更改为:
请求request1 =新请求(来源, "从big_table中选择*,其中some_column为空");
SQL返回少于100行。
变更开始快速运作。当在桌子上观看变化的时间在17-25秒之间。请求小于0.2秒。