Djangoプロファイルアプリでビュー用のテストをいくつか書きたいと思っています。Djangoプロファイルアプリケーションでビューをテストするためのベストプラクティス?
ビューには、スマートなエラー処理ロジックがあります。例えばプロファイルを作成しようとすると、そのプロファイルがすでに存在する場合は、既存のプロファイルページ(またはプロファイルの編集ページ)にリダイレクトするだけです。
このエラー処理が必要に応じて動作することをテストするにはどうすればよいですか? ベストプラクティスとは何ですか?
Zombie.jsを使用してBDDを行い、タイトルが "Create profile"でないページが表示されることをテストすることが考えられます(またはタイトルが "Edit profile"のページが表示されていることを確認してください)。しかし、Djangoのテストのドキュメントは言う:
- 使用Djangoのテストクライアントは、正しいビューが と呼ばれ、ビューが正しいコンテキストデータを収集していることをされていることを確立します。
- TwillやSeleniumなどのブラウザ内のフレームワークを使用して、レンダリングされた HTMLとWebページの動作、つまりJavaScript機能をテストします。
私はDjangoのテストクライアントを使用したい場合は、それは次の操作を実行できます。
- シミュレートGETとPOST URLにリクエストをし、応答を観察する - 低レベルのHTTPからすべて(結果のヘッダーとステータスコード)をページの内容に変換します。
- 特定のURLに対して正しいビューが実行されていることをテストします。
- 特定のDjangoテンプレートによって特定のリクエストがレンダリングされ、特定の値を含むテンプレートコンテキストがテストされることをテストします。
テストクライアントを使用してページコンテンツを表示する必要がありますか?どのようなテンプレートがレンダリングされたのか分かりますか?このビューをテストする適切な方法は何ですか?
Djangoのテストコードの外でassertRedirectsを使用できますか?私はレタス(http://lettuce.it)を使ってテストケースを作成しています。これは多くのテストを簡単に指定できるようにするためですが、私はDjango TestCaseオブジェクトの中にいるとは思いません。 –