这个和为orm写测试用例类似。
但为了区分文件,还是建议在app目录下,用tests_orm.py,tests_url.py这类单独文件加以区分。
urls.py如果如这样。
from django.contrib import admin from django.urls import path from student.views import get_classes, add_classes, del_classes, edit_classes from student.views import get_students, add_students, del_students, edit_students from student.views import set_teachers urlpatterns = [ path('admin/', admin.site.urls), path('classes.html', get_classes, name="get_classes"), path('add_classes.html', add_classes), path('del_classes.html', del_classes), path('edit_classes.html', edit_classes), path('students.html', get_students), path('add_students.html', add_students), path('del_students.html', del_students), path('edit_students.html', edit_students), path('set_teachers.html', set_teachers), ]
那我们写一个url测试可能就如这样。
最好的习惯是所有url都写上,至少,关键的得写上吧。
还有,如果view是class base view呢?
见下回分解罗~~~
from django.urls import resolve, reverse from django.test import TestCase from .views import get_classes, get_students class UrlTests(TestCase): def test_get_classes_view_status_code(self): url = reverse('get_classes') response = self.client.get(url) self.assertEqual(response.status_code, 200) def test_get_classes_url_resolves_get_classes_view(self): view = resolve('/classes.html') self.assertEqual(view.func, get_classes)