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"));
を書き換える方法を教えてください。何かアドバイスのため
感謝します。
ありがとうスシ。それは理にかなっている。テーブルの1つに複数のフィールドで構成されるキーがある場合はどうなりますか? – mip
私はそこにマップを>に変更して、内容をチェックすることができると思います。 –
slushi
したがって、return文は 'return pseudoKey.get(tableName).contains(column.getColumnName());'になります。 – mip