如何运行单元测试以验证某个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 /”)?

最佳答案

您可以配置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。

关于python - 当项目包含urls.py时,如何对其进行单元测试?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27736718/

10-12 00:23
查看更多