@DatabaseSetup アノテーションを使用して挿入したレコードのみを削除しようとしています。
私のテストは次のようになります。
@Test
@DatabaseSetup("classpath:data-set.xml")
@DatabaseTearDown(value={"classpath:data-set.xml"}, type= DatabaseOperation.DELETE)
public void testSomething() throws Exception {
データセット.xml
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<person id="1" name="Joe"/>
</dataset>
おそらく、DatabaseOperation.DELETE を使用すると、「データセットの行に一致するデータベース テーブルの行を削除する」ことを意味します。しかし、テストを実行すると、テーブル内のすべてのデータが消去されます。
問題は、ティアダウンに使用されるxmlファイルのフォーマットだと思います。さまざまな形式を使用してみました:
まず、tear-down.xml で試してください
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<person id="1"/>
</dataset>
Tear-down.xml で 2 回目の試行
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<person/>
</dataset>
また、使用する形式に関係なく、テーブル内のすべてのデータが常に削除されます。単純にテーブル名をリストしていない、ティアダウンに使用される形式の例が 1 つも見つかりません。ほとんどの例では、セットアップと破棄の両方に同じ xml ファイルを使用しているようです。
しかし、これは可能でなければなりませんね?