# import requests # url = 'http://127.0.0.1:8000/call/students/' # 确保 URL 正确 # # data = { # 'class_name': '7班', # 'num': 2, # 'mode': 0 # } # response = requests.post(url, data=data) # print(response.text) from django.test import TestCase from django.urls import reverse from app01.models import Student class CallStudentsTestCase(TestCase): def setUp(self): # 创建一些测试数据 Student.objects.create(name='学生1', sid='001', credit=0.0, class_name='测试班级1', probability=1, max=0.0, min=0.0) Student.objects.create(name='学生2', sid='002', credit=0.0, class_name='测试班级1', probability=1, max=0.0, min=0.0) def test_call_students_with_valid_post_request(self): # 测试带有有效参数的POST请求 url = reverse('call_students') data = { 'class_name': '测试班级1', 'num': 2, 'mode': 1 } response = self.client.post(url, data) self.assertEqual(response.status_code, 200) def test_call_students_with_get_request(self): # 测试GET请求 url = reverse('call_students') response = self.client.get(url) self.assertEqual(response.status_code, 200) # 或者是200,视图处理决定 self.assertIn('error', response.json()) def test_call_students_without_class_name(self): # 测试参数缺少班级名称的POST请求 url = reverse('call_students') data = { 'num': 2, 'mode': 1 } response = self.client.post(url, data) # 检查响应状态码和内容 self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['message'], 0) self.assertEqual(response.json()['error'], '缺少必要的参数') def test_call_students_without_num(self): # 测试参数缺少数量的POST请求 url = reverse('call_students') data = { 'class_name': '测试班级1', 'mode': 1 } response = self.client.post(url, data) # 检查响应状态码和内容 self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['message'], 0) self.assertEqual(response.json()['error'], '缺少必要的参数') def test_call_students_without_mode(self): # 测试参数缺少模式的POST请求 url = reverse('call_students') data = { 'class_name': '测试班级1', 'num': 2 } response = self.client.post(url, data) # 检查响应状态码和内容 self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['message'], 0) self.assertEqual(response.json()['error'], '缺少必要的参数')