問題タブ [spring-test-dbunit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
167 参照

java - dbunit を使用して、テーブル内の新しいエントリまたは更新されたエントリのみを検証します

こんにちは、dbunit のデータセットの問題または検証に直面しました。私がそのようなテーブルを持っていると想像してみましょう

そして、私はそのようなテストクラスを持っています:

新しいフィールドがデータベースに追加されたことを確認したいのですinitial-dataset.xmlが、expected-dataset.xml.

追加しようとしましDatabaseAssertionMode.NON_STRICTたが、この属性 dbunit を使用しても、予想されるデータセットに実際のデータベースとまったく同じ数または User テーブルの行が含まれていることが確認されます。

@DatabaseSetup別の解決策は、作成操作のためにそのような xml を追加することです。

userこの場合、dbunit はテストを実行する前にテーブルからすべてをクリーンアップします。この場合expected-data.xml、テスト実行の結果のみを含める必要があります。ただし、この場合、実際のシナリオで発生するさまざまなコーナー ケースを検証することは困難です。

別の解決策は unitils (dbunit の下のある種のラッパー) を使用することですが、このライブラリには @Dataset と @ExpectedDataset の本当に奇妙な概念があります

私の懸念は、たとえば、別の開発者がsmthを変更したり、新しいエントリを追加したりして、initial-dataset.xmlすべての期待されるデータセットをこの新しいフィールドで更新する必要があることです。