ドキュメントを読んでいるときに、本当に理解できない 2 つの矛盾する段落に出くわしました。
最初のものは言う:
テスト クライアントはステートフルです。応答が Cookie を返す場合、その Cookie はテスト クライアントに保存され、その後のすべての get() および post() 要求と共に送信されます。
これらの Cookie の有効期限ポリシーは守られていません。Cookie を期限切れにしたい場合は、手動で削除するか、新しい Client インスタンスを作成します (これにより、すべての Cookie が効果的に削除されます)。
もう一方で:
django.test.TestCase インスタンスのすべてのテスト ケースは、Django >テスト クライアントのインスタンスにアクセスできます。このクライアントには、self.client としてアクセスできます。このクライアントはテストごとに再作成されるため、あるテストから別のテストに引き継がれる状態 (Cookie など) について心配する必要はありません。
簡単に言えば、ログインをテストする場合django.contrib.auth.logout()
、各login()
||の後に使用する必要がありますか? post('/login/',data)
?
それとも、各テスト ケース login|post|get に独自の状態/クッキー/セッション データがあるということですか?
それは私にとって少し混乱しています。