我的单元测试配置是:JUnit,DBUnit,Spring。在单元测试期间回滚自动生成的表值
在我的Spring上下文我有一个嵌入式数据库 - hsqldb
<jdbc:embedded-database id="dataSourceSpied">
<jdbc:script location="classpath:test_ddl.sql"/>
</jdbc:embedded-database>
我的单元测试来与下面的类级别的注解:
@ContextConfiguration(locations = "classpath:/test-context.xml")
@RunWith(SpringJUnit4ClassRunner.class)
@Transactional
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,
TransactionDbUnitTestExecutionListener.class,
DbUnitTestExecutionListener.class})
我的测试模式有如下片段:
CREATE TABLE test(
id BIGINT GENERATED BY DEFAULT AS IDENTITY,
name VARCHAR(255) NOT NULL,
...
);
@Transactional
annotati在回滚期间,我在单个单元测试方法中做出的任何更改但未清除id
值!自动生成的id
值不会重置,因此单元测试依赖于它们的运行顺序!
如何在测试过程中重置Spring中自动生成的HSQLDB数据库字段?
也许trucate
命令将帮助?
你就不能忽视在测试中的ID值? – Keppil 2013-04-09 06:45:06
我想检查外键是否设置正确,这些外键是指自动生成的'id' – 2013-04-09 06:46:51