担当割当表/Part4 - History

!Part IV: 持続可能なTDD(Sustainable Test-Driven Development)

ここでは、開発が「快適である」状態を維持するためにはテストコードの質をどのようにすべきかを議論する。
テストコードにだって、プロダクトコードと同じくらいの気配りが必要だ。
テストがしづらければテストコードを修正する必要があるが、それはたいていの場合、そもそもプロダクトコードの設計がまずいのでは?というヒントでもある。

ここではガイドラインを分割された章にまとめたが、本書に収めるためになるべくまっすぐな構成にするにはまだまだやるべきことが残されている。
具体的な例として、各章で述べている ''質'' は相互に関連し、補いあっていることが挙げられる。
テスト駆動開発とは、テスティング、仕様化、設計といった別々の行為を、1 つの全体的な行為{{fn('この相互関係性は、題材を密接な関係を持つ章に分割していくことをとても困難にしたものだ。')}}に包含するものなのだ。

!Chapter 20: テストの声を聴く(Listening to the Tests)
||!見出し||!担当||!完了||
||[[はじめに|member/Chapter20/Introduction]]||yujiorama||2012/08/19||
||[[モックで置き換えたいけど、裏技なしでは不可能だ|member/Chapter20/I Need to Mock an Object I Can't Replace (without Magic)]]||yujiorama||2012/08/19||
||[[ログ出力もフィーチャ|member/Chapter20/Logging Is a Feature]]||yujiorama||2012/08/19||
||[[具象クラスのモック|member/Chapter20/Mocking Concrete Classes]]||yujiorama||2012/08/19||
||[[値はモックしない|member/Chapter20/Don't Mock Values]]||yujiorama||2012/08/19||
||[[ばかでかいコンストラクタ|member/Chapter20/Bloated Constructor]]||yujiorama||2012/08/19||
||[[よくわからないオブジェクト|member/Chapter20/Confused Object]]||yujiorama||2012/08/19||
||[[依存関係が多すぎる|member/Chapter20/Too Many Dependencies]]||yujiorama||2012/08/19||
||[[エクスペクテーションが多すぎる|member/Chapter20/Too Many Expectations]]||yujiorama||2012/08/19||
||[[テストが教えてくれること(ただしテストの声を聴いたときに限る)|member/Chapter20/What the Tests Will Tell Us (If We're Listening)]]||yujiorama||2012/08/19||

!Chapter 21: リーダブルテスト(Test Readability)
||!見出し||!担当||!完了||
||[[はじめに|member/Chapter21/Introduction]]||tomy_kaira||2012/08/19||
||[[フィーチャを表すテスト名|member/Chapter21/Test Names Describe Features]]||tomy_kaira||2012/08/19||
||[[標準的なテストの構造|member/Chapter21/Canonical Test Structure]]||tomy_kaira||2012/08/19||
||[[テストコードの合理化|member/Chapter21/Streamline the Test Code]]||tomy_kaira||2012/08/19||
||[[アサーションとエクスペクテーション|member/Chapter21/Assertions and Expectations]]||setoazusa||2012/08/19||
||[[リテラルと変数|member/Chapter21/Literals and Variables]]||setoazusa||2012/08/19||

!Chapter 22: 複雑なテストデータの扱い(Constructing Complex Test Data)
||!見出し||!担当||!完了||
||[[はじめに|member/Chapter22/Introduction]]||||9/23||
||[[テストデータのビルダー|member/Chapter22/Test Data Builders]]||||9/23||
||[[よく似たオブジェクトの作成|member/Chapter22/Creating Similar Objects]]||||9/23||
||[[ビルダーの合体|member/Chapter22/Combining Builders]]||||9/23||
||[[ファクトリーメソッドを使ってドメインモデルを強調する|member/Chapter22/Emphasizing the Domain Model with Factory Methods]]||||9/23||
||[[重複の削除の実例|member/Chapter22/Removing Duplication at the Point of Use]]||||9/23||
||[[コミュニケーションが第一|member/Chapter22/Communication First]]||||9/23||

!Chapter 23: テスト診断室(Test Diagnostics)
||!見出し||!担当||!完了||
||[[失敗させるための設計|member/Chapter23/Design to Fail]]||||||
||[[小さくて狙いが絞られており、うまい名前がついているテスト|member/Chapter23/Small, Focused, Well-Named Tests]]||||||
||[[説明的なアサーションメッセージ|member/Chapter23/Explanatory Assertion Messages]]||||||
||[[マッチャーで詳細を際立たせる|member/Chapter23/Highlight Detail with Matchers]]||||||
||[[自己言及する値|member/Chapter23/Self-Describing Value]]||||||
||[[仕込まれたことが明らかな値|member/Chapter23/Obviously Canned Value]]||||||
||[[トレーサーオブジェクト|member/Chapter23/Tracer Object]]||||||
||[[エクスペクテーションを満たすことを明示的に確かめる|member/Chapter23/Explicitly Assert That Expectations Were Satisfied]]||||||
||[[診断はファーストクラスのフィーチャ|member/Chapter23/Diagnostics Are a First-Class Feature]]||||||

!Chapter 24: テストの柔軟性(Test Flexibility)
||!見出し||!担当||!完了||
||[[はじめに|member/Chapter24/Introduction]]||||||
||[[テストするのは見た目ではなくその中身|member/Chapter24/Test for Information, Not Representation]]||||||
||[[正確なアサーション|member/Chapter24/Precise Assertions]]||||||
||[[正確なエクスペクテーション|member/Chapter24/Precise Expectations]]||||||
||[[「ギニーピッグ」オブジェクト|member/Chapter24/"Guinea Pig" Objects]]||||||
Last modified:2024/03/28 22:08:37
Keyword(s):
References: