Djangoプロファイルアプリでビューのテストをいくつか書きたいです。
ビューには、いくつかのスマートなエラー処理ロジックがあります。たとえば、プロファイルを作成しようとしたが、プロファイルがすでに存在する場合は、既存のプロファイルページ(またはプロファイルの編集ページ)にリダイレクトするだけです。
このエラー処理が希望どおりに機能することをテストするにはどうすればよいですか?ベストプラクティスは何ですか?
1つのアイデアは、Zombie.jsを使用してBDDを実行し、タイトルが「プロファイルの作成」ではないページが表示されることをテストすることです(または、タイトルが「プロファイルの編集」であるページが表示されることを確認することもできます)。しかし、Djangoのテストドキュメントには次のように書かれています。
- Djangoのテストクライアントを使用して、正しいビューが呼び出されていること、およびビューが正しいコンテキストデータを収集していることを確認します。
- TwillやSeleniumなどのブラウザ内フレームワークを使用して、レンダリングされたHTMLとWebページの動作(JavaScript機能)をテストします。
ただし、Djangoテストクライアントを使用する場合は、次のことができます。
- URLでGETおよびPOSTリクエストをシミュレートし、応答を観察します。低レベルのHTTP(結果ヘッダーとステータスコード)からページコンテンツまですべてです。
- 指定されたURLに対して正しいビューが実行されることをテストします。
- 特定の値を含むテンプレートコンテキストを使用して、特定のリクエストが特定のDjangoテンプレートによってレンダリングされることをテストします。
テストクライアントを使用してから、ページのコンテンツを確認する必要がありますか?どのテンプレートがレンダリングされたかを確認する必要がありますか?このビューをテストする適切な方法は何ですか?