From b8ec4cc7d036d09678ba8b49d024ba12302cea12 Mon Sep 17 00:00:00 2001 From: palc3e6gq <1622356900@qq.com> Date: Fri, 4 Oct 2024 15:07:30 +0800 Subject: [PATCH] Update tests.py --- bysms/user/tests.py | 50 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/bysms/user/tests.py b/bysms/user/tests.py index 7ce503c..023ab2c 100644 --- a/bysms/user/tests.py +++ b/bysms/user/tests.py @@ -1,3 +1,49 @@ -from django.test import TestCase - # Create your tests here. +from django.test import TestCase, Client, RequestFactory +from django.urls import reverse +from django.contrib.sessions.middleware import SessionMiddleware +from django.contrib.auth.models import AnonymousUser +from .views import secondpage +from .models import user, student + +class SecondPageViewTest(TestCase): + def setUp(self): + #模拟数据 + self.client = Client()#模拟客户端对象,用来发送 HTTP 请求 + self.factory = RequestFactory()#模拟HTTP的请求对象 + self.user = user.objects.create(username='testuser')#模拟用户对象 + self.student = student.objects.create(student_name='teststudent', teather_id=self.user.id)#模拟学生对象 + + def test_secondpage_logged_in(self):#检查已登录用户能否正确响应 + + session = self.client.session + session['info'] = 'testuser' #设置用户的session信息 + session.save() + + response = self.client.get(reverse('user:second'))#向对象发送请求secondpage页面的路径类似于发送/second/ + + self.assertEqual(response.status_code, 200)#检查返回的状态码 + self.assertTemplateUsed(response, 'secondpage.html')#检查返回的是否为secondpage.html + self.assertContains(response, 'teststudent')#检查返回是否有学生数据 + + def test_secondpage_not_logged_in(self):#检查未登录用户能否正确响应 + + response = self.client.get(reverse('user:second'))#向对象请求secondpage页面 + + self.assertEqual(response.status_code, 200)#检查返回的状态码 + self.assertTemplateUsed(response, 'login.html')#检查返回的是否为login.html + + + def test_secondpage_empty_student_list(self):#检查学生列表为空的secondpage能否正确响应 + # 清空学生列表 + student.objects.all().delete() + + # 模拟已登录用户 + session = self.client.session + session['info'] = 'testuser' + session.save() + + response = self.client.get(reverse('user:second')) + + self.assertEqual(response.status_code, 200) + self.assertTemplateUsed(response, 'secondpage.html')