これはベスト プラクティスの質問です。
Django でテストを作成する場合、tests.py で URL をハードコーディングするのと、ディスパッチの reverse() 関数を使用して正しい URL を取得するのとのどちらがよいでしょうか?
ハードコーディングされた URL をテストに使用するのは正しい方法のようにしか思えませんが、同時に、reverse() を使用しない十分な理由が思いつきません。
オプション A.reverse()
# Data has already been loaded through a fixture
def test_view_blog(self):
url = reverse('blog', kwargs={'blog_slug':'test-blog'})
response = self.client.get(url)
self.failUnlessEqual(response.status_code, 200)
オプション B. ハードコーディング
# Data has already been loaded through a fixture
def test_view_blog(self):
url = '/blog/test-blog/'
response = self.client.get(url)
self.failUnlessEqual(response.status_code, 200)