【发布时间】:2018-03-17 12:30:40
【问题描述】:
我正在使用以下测试来检查页面是否解析为正确的模板:
from django.test import TestCase
class HomePageTest(TestCase):
def test_landing_page_returns_correct_html(self):
response = self.client.get('/')
self.assertIn(member='Go to the', container=response.content.decode())
def test_uses_test_home_template(self):
response = self.client.get('/test/')
self.assertTemplateUsed(response=response,
template_name='myapp/home.html')
我在许多测试中使用了self.client.get('/test/') 或self.client.get('/test/dashboard/') 等的许多变体。所有这些都在我的myapp.urlpatterns 中。
然后有一天我决定摆脱/test/。或者只是更改 URL 模式。所有的测试都失败了,因为我硬编码了 URL。
我想在我的测试中使用灵活的 URL。我认为它涉及以下内容:
from myapp.urls import urlpatterns as myapp_urls
并在整个测试过程中使用myapp_urls。
我有两个问题:
- 如何实现它?
- 这种方法是否会产生我无法预见的任何(负面)副作用?
【问题讨论】:
标签: django unit-testing django-urls dry django-tests