
28
2 章 Spaghetti パターン
•
テストの実行順序
• Chain Linked
パターン
• Big Ball of Mud
パターン
2.1
Spaghetti
パターン
自動テストプロジェクトにおける
Spaghetti
パターンの特徴は、アーキテクチャや設計が認識で
きないところにあります。これは皿に盛られたスパゲティを連想させます。スパゲティ一束は
1
つ
のテストを表しているのかもしれませんし、絡み合った複数のテストを表しているのかもしれませ
ん。あまりに絡み合いすぎると、どれがどれだか見分けることすら難しくなります。しかも、パッ
と見ただけではほとんど理解できません。理解するためには、時間をかけてスパゲティの塊を解き
ほぐす必要があります。
このパターンで書かれたテストは、テストの実行順序に依存しているだけでなく、たいていの場
合、プライベートな内部コンポーネントをお互いに共有しすぎています。テストの実行順序は大き
な意味を持っています。それぞれのテストは自立、独立しておらず、テスト環境をセットアップす
るためには、自分より前のテストを実行する必要があるためです。たとえばログインテストの場
合、既存のユーザを使ったり、自らユーザを登録したりするのではなく、登録テストによって新し
いユーザがうまく登録されている必要があります。さらに、テストスイートの変数はグローバルに
共有されており、個々のテストがテストスイート全体に影響を及ぼします。
Spaghetti パターンは Chain Linked