問題タブ [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.
java - springtestdbunit使用時の外部キー制約違反の問題を解決するには?
2 つのテーブルがあり、テーブル A のフィールドの 1 つはテーブル B のフィールドを参照し、注釈 @DatabaseSetup を使用して xml ファイルのインポートを行い、xml ファイルのデータセットにテーブル A とテーブル B の両方のデータを書き込みました。単体テストを実行すると、テーブル A の INSERT がキー (0) の外部キー制約違反を引き起こしたと表示されます。
2 つのテーブル間の参照関係をどのように表現するか?
java - NoSuchBeanDefinitionException を取得する Spring Boot DBUnit テスト
シンプルな SpringBoot DB ユニット リポジトリ テストを作成しようとしていますが、次の結果が得られます。
NoSuchBeanDefinitionException: タイプ 'example.ItemRepository' の適格な Bean がありません: オートワイヤー候補として適格な Bean が少なくとも 1 つ必要です。依存関係アノテーション: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
私のGradle依存関係
私のリポジトリitem-repository/src/main/java/example/ItemRepository
でのマイ リポジトリ テストitem-repository/src/test/java/example/ItemRepositoryTest
私のテスト構成item-repository/src/main/test/example/configuration/RepositoryTestConfiguration
これを機能させるには、my に何を含める必要がありRepositoryTestConfiguration
ますか?
注:リポジトリをクラスとは別のモジュールに保持しているApplication
ため、テスト構成でそのクラスを参照できません
dbunit - DBUnit で assertionMode = DEFAULT を使用して null 列の値を確認するにはどうすればよいですか?
2 行 34 列のテーブルがあります。列のうち 3 つは null にする必要があります。を使用する場合assertionMode = NON-STRICT
、after.xml ファイルで 34-3=31 列を指定できます。DBUnit は、欠落している 3 つの列が null であることを認識します。DBUnit は、テーブルの 2 行と 34 列が私の after.xml の 2 行と 31 列と正確に一致することを保証し、after.xml で指定しなかった列 (3 列) は DBUnit が検証する null と見なされます。同じように。
ただし、NON_STRICT は機能しなくなりました。正確に 2 行であることを確認したい場合は、それ以上でもそれ以下でもありません (たとえば、after.xml で指定された 2 行がテーブルにある場合、テストに合格します。私はより多くの行を持っているかどうか)。
だから、私は使用する必要があると考えましassertionMode = DEFAULT
た。これを行うと、「予想される列は34ですが、テーブルに31が見つかりました」のようなエラーが表示されます。after.xml で 31 しか指定していないため、31 しか見つかりませんでした。他の 3 つは null であるため、DBUnit ドキュメントごとに after.xml から除外しました。DEFAULT は、DBUnit が null であるかどうかに関係なく、after.xml で 34 列が指定されることを期待しているようです。何か不足していますか?
クエリを指定して 34 列 (3 列は null) ではなく 31 列を取得し、そのクエリの結果を使用して after.xml と比較するなど、回り道の方法を試しました。また、行数を数えて、2行あることを確認しました。しかし、それらは回りくどい方法のようです。
DEFAULTが気に入らないように見えるので、after.xmlで列を除外する以外に、DBUnitで列をnullとして指定する方法はありますか?
assertionMode = DEFAULTを使用してDBUnitで列をnullとして指定する適切な方法は何ですか?