29 Chapter Notes by Ethan - Gaia-Murata/Study-TDD GitHub Wiki

  1. xUnitに関するパテーン

1.アサート

コードが動作【どうさ】するかの判断【はんだん】を自動化する論理式【ろんりしき】を作成【さくせい】する。

よく使うアサート関数が:

assertTrue();

assertFalse();

assertEquals();

例:

データベースのクエリー:

public getUsersByGrade($grade) {

$sql = __SQL__

    SELECT 

        user_id, user_grade

    FROM  

        user

    WHERE  

        user_grade = :grade;

    __SQL__;	


$result = query($sql);

return $result;

}

データベースのデータが毎日変化するので、クエリー結果は毎日違います。

どういうアサートメソッド使いますか?

(1)

assertTrue(count($result) > 0) X

(2)

foreach($result as $r) {

assertTrue($r['user_grade'] == $grade);  X

}

2.フィクスチャ

テスト内【ない】のローカル変数をインスタンス変数に変換する。

setUp()をオーバライドし、そのインスタンス変数を初期化【しょきか】する。

重複コードを取り除く【とりのぞく】する。

3.外部【がいぶ】のフィクスチャ

tearDown()をオーバライドして、外部リソースを解放【かいほう】

テストした後、、tearDown()が自動実行【じっこう】する。

4.テストメソッド

名がtestで始まるメソッドとして表現【ひょうげん】する。

テストメソッドは読みやすく、わかりやすいコードであるべきだ。

テストメソッドが長く複雑な場合【ばあい】は、小さな手順【てじゅん】を踏【ふ】む必要がある。

5.例外【れいがい】テスト

想定【そうてい】される例外をとらえて、無視【むし】する。

その例外が起きなかった場合にだけテストが失敗するよにする。

6.すべてのテスト

すべてのスイートを集約【しゅうやく】するスイートを作成【さくせい】する。

ペッケージごとに1つのスイートを作成【さくせい】し、パッケージレベルのテストスイートを

集約【しゅうやく】するアプリケーション全体のスイートを1つ作成【さくせい】する。