2009-05-29 6 views
1

私はCakePHPでユニットテストをしています。私は私のコントローラの2つをテストしたい。私のアプリにはさまざまな種類のユーザーがいます。どのタイプのユーザーがログインしているかによってアプリが返す結果をテストしたいと思いますが、コントローラのテストケースからアプリにログインする方法はわかりません。私は成功なしにいくつかのアプローチを試しました。 1)Usersコントローラを使用してログインしてからテストケースを実行しようとしました.2)コントローラユニットテストでWebテストケースをグループ化しようとしました。特定のユーザタイプに対してCakePHPアプリケーションをテストするにはどうすればよいですか?

非常に助けになるでしょう。

ありがとうございました。

答えて

3

try Mark-story's articleコントローラをテストしています。あなたは本当にユニットをテストしていませんか?定義により、unit is the smallest testable part of an application。アプリケーションのテストを失敗することなく成長することができないので、あなたのアプリケーションのような広範な大きなテストを作成することは悪い考えです。問題をより小さな部分に分割しようとするべきだと思います。言い換えれば、ユーザーが適切なタイプとして識別され、そのタイプが与えられていることを確認することで、ユーザーは必要な情報にアクセスできなくなります。

+0

ご返信ありがとうございます。あなたが私がしようとしていることがユニットテストではない理由を説明できるかどうか疑問に思っています。私はコントローラで1つのメソッドをテストしたい。しかし、このメソッドが返すものは、ログインしているユーザーのタイプによって異なります。ユーザーが提示すべきでない情報にユーザーがアクセスできないことをテストします。とにかく、お返事ありがとうございました。 –

+0

コントローラーメソッド(つまりアクション)は、実際には何も返しません。コーディングの意味ではありません。入力を受け取り、任意の数の検証と検査を行い、次に1つ以上のモデルの任意の数の要求を行い、次にビューに沿ってデータを渡します。これを全体としてテストすることは、少なくとも私にとって意味のあることではありません。 –

+0

上記のコメントによれば、モデル内にない限り、ビジネスロジックをテストすることはできません。私は、コントローラーが出力可能でないテスト可能なメソッドを持つことも期待します。これに関する意見は歓迎された。 –

関連する問題