Quantcast
Channel: プログラム の個人的なメモ
Viewing all articles
Browse latest Browse all 860

【JUnit】 AssertJ / AssertJ-DB ~ 基本編 [1] / DBデータの比較について ~

$
0
0

■ はじめに

https://blogs.yahoo.co.jp/dk521123/36157721.html
の続き。
今回は、時間以外のDBデータの比較について扱う。

なお、時間に関する比較は、以下の関連記事を参照。
AssertJ / AssertJ-DB ~ 基本編 [3] / 時間に関する比較 ~
https://blogs.yahoo.co.jp/dk521123/37145996.html

■ 比較について

 (知ってる限りだと)大きく分けて以下の2点。

【1】テーブル・インスタンスを取得して比較する
【2】DBの変更に関わるインスタンスを取得して比較する

【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


関連記事

AssertJ / AssertJ-DB ~ 入門編 ~

https://blogs.yahoo.co.jp/dk521123/36157721.html

AssertJ / AssertJ-DB ~ 基本編 [3] / 時間に関する比較 ~

https://blogs.yahoo.co.jp/dk521123/37145996.html

Viewing all articles
Browse latest Browse all 860

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>