Listening to the Tests

Growing Object-Oriented Software, Guided by Tests (Addison-Wesley Signature Series (Beck))

Growing Object-Oriented Software, Guided by Tests (Addison-Wesley Signature Series (Beck))

Chapter20 を読んだ。test smells を感じ取る感覚をつかむ章となっている。
まずいコードと、何がまずいのかが記述してある。日付のテスト、意図が不明なメソッド名、ロギンング、構造化されていないコンストラクタ、責務が多すぎるオブジェクト、多すぎる依存関係、意図が不明確のモック記述、継承を使ったフェイクによるテストでコラボレーションが暗黙化などなど。

後半に、テストが僕らに何を教えてくれるかをまとめている。

  • Keep knowledge local
  • If it's explicit, we can name it
  • More names mean more domain information
  • Pass behavior rather than data

このまとめは一貫して、オブジェクト同士の『コラボレーション』を強く重視した説明になっている。
test smellsの例、behavior の設計思想を知りたいなら、 20はおすすめ。


私の Mockの最初の理解は、「テストしやすいように本物と差し替える」と理解していたが、この本を読み始めてから、それに加えて、「テスト対象とその周辺のコラボレーション関係を明確にする」を強く意識するようになった。


Behaviorの座視は、よく知られる、要素、属性を使った分類と異なる。
そのルーツがどこにあるのかが知りたくて、哲学書をたまに読んでるんだが、未だに良く解らない。

私が、Behavior で最初に連想するのはこの本。

断片と全体

断片と全体

SVOの自然言語をいったん脇においておいて、
Vを中心に対象を記述し、SやOを後回しにする 言語の考案の話。
ボームは量子力学者で、この対象ドメインにおいて、まずモノがありその後にコトがある自然言語の文法の記述の限界を感じていたようだ。


Growing の章立で、Mock使った Behavior の説明が、 Test Data Buildersの話より先に来ているのは、偶然なのか、意図的なのか。