1

私が書いたアプリをチェックするために、Djangoでいくつかのテストを書いています。ここで提案されていることを多かれ少なかれ取り組んでいます ( http://toastdriven.com/blog/2011/apr/10/guide-to-testing-in-django/ )。ただし、次のようなものを入れると

    resp = self.client.get('made_up_url')
    self.assertEqual(resp.status_code, 404)

これは存在しません (したがって、404 応答、つまりテストに合格することを望んでいます)...しかし、テストは 200!=400 と言って失敗します。つまり、made_up_url が有効なページであると考えているようです。

何が間違っている可能性がありますか?

4

1 に答える 1

1

self.client.get存在しない URLにアクセスしようとしています: made_up_url。dan-klasson が言ったように、取得する必要があります/made_up_url

self.client.get引数に URL をハードコーディングするのではなく、まず関連する URLをファイルに指定することをお勧めしurls.pyます。したがって、関数を介して解決できますreverse

次に、それを取得nameしたら、単体テストでこれを実行できます。

from django.core.urlresolvers import reverse

url = reverse('made_up_url')
resp = self.client.get(url)
self.assertEqual(resp.status_code, 404)
于 2013-07-18T13:22:43.410 に答える