【问题标题】:How to unit test urls.py when included by project?项目包含时如何对 urls.py 进行单元测试?
【发布时间】:2015-02-28 11:07:50
【问题描述】:

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

【问题讨论】:

    标签: python django unit-testing testing tdd


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-28
      • 2010-12-26
      • 1970-01-01
      相关资源
      最近更新 更多