Django url 测试
Django url testing
urls.py我的web应用如下
urlpatterns = [
path('u/<int:unit_id>/', views.unit_view, name='unit_view'),
path('u/<int:unit_id>/edit/', views.unit_edit, name='unit_edit'),
]
我尝试编写如下测试。无法 运行 测试。甚至没有收到错误
from django.urls import reverse, resolve
class TestUrls:
def test_unit_view_url(self):
path = reverse('unit_view', kwargs={'unit_id': 1})
assert resolve(path).views.unit_view == 'unit_view'
def test_unit_edit_url(self):
path = reverse('unit_edit', kwargs={'unit_id': 1})
assert resolve(path).views.unit_edit == 'unit_edit'
您没有从 TestCase
子class,所以对于 Django 这只是一个 普通 class.
<b>from django.test import TestCase</b>
from django.urls import reverse, resolve
class TestUrls<b>(TestCase)</b>:
def test_unit_view_url(self):
path = reverse('unit_view', kwargs={'unit_id': 1})
self.assertEqual('unit_view', resolve(path).views.unit_view)
def test_unit_edit_url(self):
path = reverse('unit_edit', kwargs={'unit_id': 1})
self.assertEqual('unit_edit', resolve(path).views.unit_view)
通常断言也是与 assertEqual(..)
[Python-doc] 和朋友一起编写的,因为这会产生有用的消息,例如:
AssertionError: 'foobar' != 'foobor'
- foobar
? ^
+ foobor
? ^
因此测试将打印这两个值,并且 - 根据类型和断言 - 甚至可以更深入地了解问题所在。
有关详细信息,请参阅 Django documentation on Writing and running tests。
urls.py我的web应用如下
urlpatterns = [
path('u/<int:unit_id>/', views.unit_view, name='unit_view'),
path('u/<int:unit_id>/edit/', views.unit_edit, name='unit_edit'),
]
我尝试编写如下测试。无法 运行 测试。甚至没有收到错误
from django.urls import reverse, resolve
class TestUrls:
def test_unit_view_url(self):
path = reverse('unit_view', kwargs={'unit_id': 1})
assert resolve(path).views.unit_view == 'unit_view'
def test_unit_edit_url(self):
path = reverse('unit_edit', kwargs={'unit_id': 1})
assert resolve(path).views.unit_edit == 'unit_edit'
您没有从 TestCase
子class,所以对于 Django 这只是一个 普通 class.
<b>from django.test import TestCase</b>
from django.urls import reverse, resolve
class TestUrls<b>(TestCase)</b>:
def test_unit_view_url(self):
path = reverse('unit_view', kwargs={'unit_id': 1})
self.assertEqual('unit_view', resolve(path).views.unit_view)
def test_unit_edit_url(self):
path = reverse('unit_edit', kwargs={'unit_id': 1})
self.assertEqual('unit_edit', resolve(path).views.unit_view)
通常断言也是与 assertEqual(..)
[Python-doc] 和朋友一起编写的,因为这会产生有用的消息,例如:
AssertionError: 'foobar' != 'foobor'
- foobar
? ^
+ foobor
? ^
因此测试将打印这两个值,并且 - 根据类型和断言 - 甚至可以更深入地了解问题所在。
有关详细信息,请参阅 Django documentation on Writing and running tests。