0
我用下面的測試,以檢查網頁是否解析爲正確的模板:在很多很多測試單元測試具有靈活的URL模式
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/
。或者乾脆更改網址模式。所有的測試都失敗了,因爲我對網址進行了硬編碼。
我想在我的測試中使用靈活的網址。我認爲它包括類似於:
from myapp.urls import urlpatterns as myapp_urls
和使用myapp_urls
在整個測試。
我有兩個問題:
- 我如何能實現呢?
- 這種方法會有什麼(負面)副作用,我沒有預料到嗎?
這很好。我首先將'myapp.urls import urlpatterns'作爲myapp_urls'添加到序言中。然後我使用了'reverse('myapp_urls:test_view_url')',其中'test_view_url'是'urlpatterns'中使用的url模式的名稱。謝謝! – HBat