我正在为我的应用程序设置单元测试,而且我需要对数据库进行模拟,因此我不会改变实际的数据库。
所以,我使用 DBUnit 来模拟基于 XML文件的数据库:
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<ACTION_TYPE ID="1" NAME="INVALID_CPT"/>
<ACTION_TYPE ID="2" NAME="INTEGRATED_FLOW"/>
<ACTION_TYPE ID="3" NAME="CLOSING_TECHNICAL_FLOW"/>
<ACTION_TYPE ID="4" NAME="AUDIT_FLOW"/>
<ACTION_TYPE ID="5" NAME="VALIDATION_FLOW"/>
<ACTION_TYPE ID="6" NAME="RETURN_DRAFT_FLOW"/>
<USER_GROUP ID="1" NAME="AKA_CPT"/>
<USER_GROUP ID="2" NAME="AKA_ADMIN_SECU"/>
<USER_GROUP ID="3" NAME="AKA_CISO"/>
<USER_GROUP ID="4" NAME="AKA_ADMIN_NETWORK"/>
<ACTION_USER_GROUP ACTION_TYPE_ID="1" USER_GROUP_ID="1"/>
<ACTION_USER_GROUP ACTION_TYPE_ID="4" USER_GROUP_ID="1"/>
<ACTION_USER_GROUP ACTION_TYPE_ID="6" USER_GROUP_ID="1"/>
<ACTION_USER_GROUP ACTION_TYPE_ID="2" USER_GROUP_ID="2"/>
<ACTION_USER_GROUP ACTION_TYPE_ID="3" USER_GROUP_ID="2"/>
<ACTION_USER_GROUP ACTION_TYPE_ID="5" USER_GROUP_ID="2"/>
<ACTION_USER_GROUP ACTION_TYPE_ID="5" USER_GROUP_ID="3"/>
<ACTION_USER_GROUP ACTION_TYPE_ID="2" USER_GROUP_ID="4"/>
</dataset>
这只是整个XML文件的一部分,但这是我的问题所在。
我有这两个对象 ACTION_TYPE 和 USER_GROUP ,这些对象由多对多关系链接。
但是一旦我运行我的测试代码,我就会收到此错误:
org.h2.jdbc.JdbcSQLException: Referential integrity constraint violation: "FKFA9ACTE184RNO1RS40IW6E1LK: PUBLIC.ACTION FOREIGN KEY(USER_GROUP_ID) REFERENCES PUBLIC.USER_GROUP(ID) (2)"; SQL statement:
delete from USER_GROUP [23503-193]
我知道完整性约束违规是什么,但我不认为我在上面的XML文件中创建了一个。
有人知道这个错误来自哪里,也许我可以解决它?
提前谢谢