zf 1.11.11 と phpunit 3.5.15 を使用する複雑なバックエンド アプリケーションがあります。アプリケーションには、いくつかの複雑な通信コンポーネント (soap、rest など) があります。CIS または開発テスト環境では、生産的なサード パーティ バックエンドへの接続または要求を確立できないため、このモデルをモックする必要があります。したがって、ユニットテストレイヤーをモックすると、非常にうまく機能します。完全なカバレッジ - 問題ありません。問題は、コントローラーの統合テスト中にこの手法を使用できないことです。モデルを完全に非表示にする上位層です。したがって、現時点でモックを注入することは不可能だと思います。一方で、これは統合テストの性質であるため、正しくて良いことですが、他方では、コントローラー テストのカバレッジが非常に低くなります。
問題の概要:
- コンポーネントと通信するテスト サービスを作成できない (高コスト)
- コントローラーのテスト中にコンポーネントのモックを挿入できません (リクエスト データを設定してディスパッチャーをトリガーするだけです)
- コントローラーのカバレッジが低すぎる
すべてをプラグインとして実装するソリューションを見てきました。一部の名前空間リダイレクトがモック プラグインを指すことができるようにします。しかし、これが良い解決策だとは思いません。