SpringBootでDBのテストを書いています。
アノテーションの属性の意味を忘れないようにメモ。
@ExpectedDatabase
value
結果検証用のファイルのパスを記入する。
assertionMode
DBと結果検証用のファイルを比較のしかたを指定する属性。
DEFAULT(または指定なし)
全てのテーブルとカラムの一致を比較する。
そのため、CSV等を用意したテーブル以外も調査対象となる。
このまま使うと、
junit.framework.ComparisonFailure: table count expected:<[3]> but was:<[47]>
と言った感じのスタックトレースが出力されてしまう。DB上の全てのテーブルが見られていることがわかる。
そのため、単体テストで用いる場合は以下の2つのどちらかを指定する必要がある。
NON_STRICT
結果検証用のファイルに存在しないテーブル、カラムがあっても無視する。
NON_STRICT_UNORDERED
NON_STRICTに加えて、行の順序についても無視する。