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

标签 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')),

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

或者为您的网址命名并通过该名称解析它,无论使用实际的网址。在这种情况下,您不需要为 TestCase 配置 url。

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

相关文章:

python - django.db.utils.ProgrammingError : relation "blogango_blog" does not exist

python - Django 和 Python 6 兼容模块

java - Mockito:mock-maker-inline Android GcmNetworkManager mock java.lang.VerifyError Google Play Services v11.0.2

swift - for 循环内的代码覆盖率不正确

python - 如何处理列表理解中的错误

python - 无法打开 urllib2 中的某些 url,但仍可以在浏览器中打开?

python - Odoo 8 向导错误 : "For this kind of document, you may only access records you created yourself."

python - 如何使用 django 添加元关键字

javascript - 如何模拟由 ember 的 IoC 注入(inject)的属性

python - Numpy:沿特定 Axis 的外和