29 Chapter Notes by Ethan - Gaia-Murata/Study-TDD GitHub Wiki
- 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つ作成【さくせい】する。