4

私は自分のサイトの認証機能をテストしています。Zend_Authは認証エンジンとして使用しています。しかし、認証ステータスはテスト間で残り、すべてのティアダウンに「logout」を書き込む必要があります。

今、すべてが大丈夫です。しかし、問題は次のとおりです。私が知っているのは、Zend_Authが認証データの保存にZend_Sessionを使用していることです。したがって、セッションはすべてのテストに共通です。将来的に問題が発生する可能性があるのではないかと心配しています。

各テストのセッションを分離するためのベストプラクティスを教えてください。

これで、setUpでセッションを手動で開始し、tearDownで停止することしか想像できません。しかし、私には多くのテストがあり、これを実装するには多くの時間がかかる可能性があります。

4

1 に答える 1

1

PHPUnitを使用すると、テストスイート全体の共有フィクスチャ(共通のセットアップ)を定義できます。ただし、このソリューションは、共通のグローバル状態への依存性に対処していないため、テストの設計の欠陥を隠すだけです。より良い解決策は、テストダブルを使用して、特定のクラスのカスタムスタブを作成し、システムの選択された部分の動作を制御することです。

この場合、Zend_Authのスタブを作成して、Zend_Sessionの使用をスキップし、各単体テストに必要なアクセス許可を返すようにすることができます。

于 2010-05-18T09:45:15.897 に答える