■ はじめに
https://blogs.yahoo.co.jp/dk521123/36157721.htmlの続き。 今回は、時間以外のDBデータの比較について扱う。 なお、時間に関する比較は、以下の関連記事を参照。AssertJ / AssertJ-DB ~ 基本編 [3] / 時間に関する比較 ~
https://blogs.yahoo.co.jp/dk521123/37145996.html
【1】テーブル・インスタンスを取得して比較する
* テーブルのインスタンスを取得して、比較することもできる
構文
Source source = new Source("jdbc:mysql://【DB Host】:【ポート】/【DB名】", "【ID】", "【パスワード】"); Table table = new Table(source, "【テーブル名】"); assertThat(table).row(0).value("id").isEqualTo("X0001");詳細なサンプルは、以下の関連記事を参照のこと。
https://blogs.yahoo.co.jp/dk521123/36164701.html
【2】DBの変更に関わるインスタンスを取得して比較する
http://joel-costigliola.github.io/assertj/assertj-db-concepts.html#changesの図が分かりやすいかも。
構文
Source source = new Source("jdbc:mysql://【DB Host】:【ポート】/【DB名】", "【ID】", "【パスワード】"); // DB変更を追跡するための Changesインスタンス Changes changes = new Changes(source); // スタートポイント(変更前の状態を記憶) changes.setStartPointNow(); // テスト対象メソッド実行... // ... 略 ... // エンドポイント(変更後の状態を記憶) changes.setEndPointNow(); // 項目を明示的に指定して比較可能 assertThat(changes) .hasNumberOfChanges(【変更したレコード数】) .change() .isOnTable("【テーブル名】") .rowAtEndPoint() .value("【項目1】").isEqualTo("【期待値1】") .value("【項目2】").isEqualTo("【期待値2】") .value("【項目3】").isEqualTo("【期待値3】");詳細なサンプルは、以下の関連記事を参照のこと。
https://blogs.yahoo.co.jp/dk521123/36157721.html
参考文献
http://create-something.hatenadiary.jp/entry/2017/09/16/160308http://se-bikou.blogspot.jp/2017/05/assertj-db.html