這兩個django的網址模式測試,一個URL是匹配的正確視圖
(r'^articles/(\d{4})/$', 'news.views.year_archive'),
(r'^articles/2003/$', 'news.views.special_case_2003'),
的special_case_2003
視圖永遠不會因爲它
如何可以在上面較寬圖案的被稱爲我測試(在tests.py)通過URL模式匹配了哪些視圖,以確保我的網址與所需的視圖匹配
這兩個django的網址模式測試,一個URL是匹配的正確視圖
(r'^articles/(\d{4})/$', 'news.views.year_archive'),
(r'^articles/2003/$', 'news.views.special_case_2003'),
的special_case_2003
視圖永遠不會因爲它
如何可以在上面較寬圖案的被稱爲我測試(在tests.py)通過URL模式匹配了哪些視圖,以確保我的網址與所需的視圖匹配
這不會讓你匹配原正則表達式,但它會告訴你匹配一個模式的一個例子:
from django.core.urlresolvers import resolve
def test_foo(self):
func = resolve('/foo/').func
func_name = '{}.{}'.format(func.__module__, func.__name__)
self.assertEquals('your.module.view_name' func_name)
您應該pu t特殊情況優先:
(r'^articles/2003/$', 'news.views.special_case_2003'),
(r'^articles/(\d{4})/$', 'news.views.year_archive'),
從上到下對url進行評估,從而呈現url匹配的第一個視圖。你可以在瀏覽器中使用它們來測試這些URL,或者你可以在tests.py中爲它們寫一個特定的測試。
有關如何測試urls.py的更多信息,請參閱https://docs.djangoproject.com/en/1.4/topics/testing/#testing-tools,其中解釋瞭如何檢查您是否收到200響應以及如何測試某些內容是否存在。
這裏是典型的例子:
>>> from django.test.client import Client
>>> c = Client()
>>> response = c.post('/login/', {'username': 'john', 'password': 'smith'})
>>> response.status_code
200
>>> response = c.get('/customer/details/')
>>> response.content
'<!DOCTYPE html...'
Greate one,但應該是'func = resolve( '/ foo /')。func' – MYaser 2013-03-19 14:46:27
嗯,是的,在我的終端,但沒有複製它出於某種原因。 – 2013-03-19 15:35:35