DbUnit을 사용하도록 단위 테스트 환경을 설정하려고합니다.기본 키가없는 테이블에서 DbUnit 사용
제어하려고 시도하는 테이블에 기본 키가 없기 때문에 몇 가지 문제가 있습니다. 나는 org.dbunit.dataset.NoPrimaryKeyException
을 받고있다.
는 여기 http://dbunit.wikidot.com/noprimarykeytable을 단계를 수행했지만 어떻게 사용합니까 : 내 각 테이블에 대한
connection.getConfig().setProperty("http://www.dbunit.org/properties/primaryKeyFilter", new MyPrimaryKeyFilter("A1"));
? 예를 들어
, 나는 다음과 같은 데이터베이스있다 :
CREATE TABLE `NO_PK1` (
`A1` int(11) NOT NULL,
`A2` varchar(50) default NULL
);
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<NO_PK1 A1="1" A2="Test1" />
<NO_PK1 A1="2" A2="Test2" />
<NO_PK1 A1="3" />
</dataset>
CREATE TABLE `NO_PK2` (
`B1` int(11) NOT NULL,
`B2` varchar(50) default NULL
);
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<NO_PK2 B1="1" B2="Test1" />
<NO_PK2 B1="2" B2="Test2" />
<NO_PK2 B1="3" />
</dataset>
CREATE TABLE `NO_PK3` (
`C1` int(11) NOT NULL,
`C2` varchar(50) default NULL
);
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<NO_PK3 C1="1" C2="Test1" />
<NO_PK3 C1="2" C2="Test2" />
<NO_PK3 C1="3" />
</dataset>
어떻게이 경우에 connection.getConfig().setProperty("http://www.dbunit.org/properties/primaryKeyFilter", new MyPrimaryKeyFilter("A1"));
를 다시 작성할 수 있습니까?
조언에 대해 감사드립니다.
감사합니다. 그건 의미가 있습니다. 테이블 중 하나에 하나 이상의 필드로 구성된 키가 있다면 어떨까요? – mip
나는지도를>으로 변경하고 포함 체크를 할 수 있다고 생각한다. –
slushi
그래서 return 문은'return pseudoKey.get (tableName) .contains (column.getColumnName()); '가됩니다. – mip