import unittest from app.views import * from unittest.mock import patch from flask import session class TeacherSignInTestCase(unittest.TestCase): def setUp(self): # 设置 Flask 测试模式 app.testing = True self.client = app.test_client() @patch('db.database_manager.DatabaseManager.update_sign_in_info') def test_teacher_sign_in(self, mock_teacher_sign_in): # 模拟已登录用户 with self.client.session_transaction() as sess: sess['number'] = 'X202301000001' # 模拟数据库操作的返回值 mock_teacher_sign_in.return_value = {"msg": "当前班级专业没有学生'"} # 发送 POST 请求到/api/teacher-sign-in response = self.client.post('/api/teacher-sign-in', data={ 'course_id': '123', 'course_name': 'Test Course', 'class_name': 'TestClass', 'major_id': '456' }) # 验证返回的状态码和数据 self.assertEqual(response.status_code, 200) json_data = response.get_json() self.assertEqual(json_data, {"msg": "当前班级专业没有学生"}) if __name__ == '__main__': unittest.main()