ユニットテストと機能テスト
単一のコードコンポーネントが任意の入力に対して正しい出力を提供することを確認する。
このテストは関数とメソッドがすべての特定のケースで動作する方法を検証する。
ユニットテストは一度に1つのケースを処理するので、1つのメソッドが特定の状況で異なる動作をする場合には、いくつかのユニットテストが必要になる。
シンプルな入力から出力への変換ではなく、完全な機能を検証する。
たとえば、キャッシュシステムは機能テストだけで検証可能。
なぜならば複数のステップが含まれるからだ。
ページがリクエスト→レンダリング→キャッシュからページが取得
機能テストはプロセスを検証し、シナリオを必要とする。
symfonyにおいて、すべてのアクションに対して機能テストを書くべきである。
※注意
もっと複雑なインタラクションには、これらの2つのタイプのテストだけでは不十分であろう。
指針としては、テストはシンプルで読みやすいものに保つべきである。