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

How to unit test urls.py when included by project?

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

我如何编写包含在应用程序中的测试,以便它检查 url "/testme/" 独立于它是如何包含的? (本例中为“/submodule/testme/”)?

, include('fhqna.urls')),

我如何编写包含在应用程序中的测试,以便它检查 url "/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__)

或者为您的 url 命名并使用此名称解析它,而不考虑实际使用的 url。在这种情况下,您不需要为 TestCase 配置 urls。