我的單元測試配置是: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