19159


現在、DBUnitを採用するか迷っていまして

DBUnitのassertEqualsメソッドで  
テーブルオブジェクト同士の比較ができると思いますが  
データ値が異なる場合、カラム毎にエラー情報は出るのでしょうか？

例えば、以下の場合

実テーブル  
ID:1  
name:本１  
suryo:2

検証元テーブル  
ID:1  
name:本１  
suryo:3

** suryo 予測 3、 実際 2**  
のようなイメージ

知りたい理由：  
「比較したオブジェクトが異なります」だけのメッセージだけの場合、  
何が違うかわからないためです。

調査する時間がなく  
知っている方が、いらっしゃいましたら教えてください。


CC BY-SA 3.0
2015-11-22T01:07:59.073
19151
2015-11-22T05:07:02.333
13362
question
java eclipse junit
DBUnitのテーブル比較結果について


DBUnitはテーブル同士の比較も可能です。(前提条件として、双方PrimaryKeyを設定しておくことがあります）

ご懸念の点についても、割と詳細に出してくれます。

  * テーブル名
  * 行番号(0開始)
  * カラム名
  * 期待する値
  * 実際の値
  * (比較できる場合は)期待値と実値の違い

アサーションエラーのトレース例を貼りますので、参考にしてください。

[code]

    junit.framework.ComparisonFailure: value (table=sample2, row=1, col=storeText) expected:<[anoth]er> but was:<[us]er>
        at org.dbunit.assertion.JUnitFailureFactory.createFailure(JUnitFailureFactory.java:39)
        at org.dbunit.assertion.DefaultFailureHandler.createFailure(DefaultFailureHandler.java:97)
        …(中略)…
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
    
[/code]

文字列同士で比較して違うところを示してくれますね。  
動作確認は以下の環境で行いました。

  * DBUnit 2.5.1
  * MySQL 5.5.34

参考になれば幸いです。


CC BY-SA 3.0
2015-11-22T05:07:02.333
19159
2015-11-22T05:07:02.333
5778
19151
answer