如何在项目包含时对urls.py进行单元测试?

时间:2015-01-02 02:27:03

标签: python django unit-testing testing tdd

如何运行单元测试来验证某个URL是否调用特定函数?

我想做这样的事情:

class HomePageTest(TestCase):

  def test_root_url_resolves_to_list_view(self):
    found = resolve('/testme/')
    self.assertEqual(found.func.func_name, ListView.__name__)
    #self.assertEqual(found.func, ListView.as_view())

但是让我们假设应用程序urls.py包含在项目urls.py中,例如:

url(r'^submodule/$', include('fhqna.urls')),

如何编写应用程序中包含的测试,以便检查网址“/ testme /”独立于如何包含? (在这个例子中是“/ submodule / testme /”)?

1 个答案:

答案 0 :(得分:2)

您可以配置urls for test case

class HomePageTest(TestCase):

    urls = 'fhqna.urls'

    def test_root_url_resolves_to_list_view(self):
        found = resolve('/testme/')
        self.assertEqual(found.func.func_name, ListView.__name__)

或者为您的网址命名,并使用此名称解析它,无论使用的是哪个网址。在这种情况下,您不需要为TestCase配置URL。