You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.9 KiB
71 lines
2.9 KiB
2 months ago
|
import { expect } from 'chai';
|
||
|
import axios from 'axios';
|
||
|
|
||
|
// 定义测试块
|
||
|
describe('Flask API calls', () => {
|
||
|
const baseURL = 'http://localhost:3000'; // Flask 服务器的基本 URL
|
||
|
|
||
|
// 测试随机获取学生
|
||
|
it('should get a random student from Python API', async () => {
|
||
|
try {
|
||
|
// 调用 Flask 服务器的 /get_random_student 端点
|
||
|
const response = await axios.get(`${baseURL}/get_random_student`);
|
||
|
|
||
|
// 断言返回结果是否包含 student_id 和 name 字段
|
||
|
expect(response.status).to.equal(200);
|
||
|
expect(response.data).to.have.property('student_id');
|
||
|
expect(response.data).to.have.property('name');
|
||
|
console.log("Random student fetched successfully:", response.data);
|
||
|
} catch (error) {
|
||
|
console.error("Error fetching random student:", error);
|
||
|
throw error;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// 测试更新出勤积分
|
||
|
it('should update attendance score for a student', async () => {
|
||
|
try {
|
||
|
const studentId = '102201505'; // 假设学生
|
||
|
|
||
|
// 调用 Flask 服务器的 /update_attendance_score 端点
|
||
|
const response = await axios.post(`${baseURL}/update_attendance_score`, {
|
||
|
student_id: studentId
|
||
|
});
|
||
|
|
||
|
// 断言返回结果是否包含成功信息
|
||
|
expect(response.status).to.equal(200);
|
||
|
expect(response.data).to.have.property('message').that.equals('Attendance score updated');
|
||
|
expect(response.data).to.have.property('student_id').that.equals(studentId);
|
||
|
console.log("Attendance score updated successfully:", response.data);
|
||
|
} catch (error) {
|
||
|
console.error("Error updating attendance score:", error);
|
||
|
throw error;
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// 测试更新回答积分
|
||
|
it('should update answer score for a student', async () => {
|
||
|
try {
|
||
|
const studentId = '102201505'; // 假设学生
|
||
|
const repeatedCorrectly = true; // 假设重复回答正确
|
||
|
const answerScore = 2.0; // 假设回答得分
|
||
|
|
||
|
// 调用 Flask 服务器的 /update_answer_score 端点
|
||
|
const response = await axios.post(`${baseURL}/update_answer_score`, {
|
||
|
student_id: studentId,
|
||
|
repeated_correctly: repeatedCorrectly,
|
||
|
answer_score: answerScore
|
||
|
});
|
||
|
|
||
|
// 断言返回结果是否包含成功信息
|
||
|
expect(response.status).to.equal(200);
|
||
|
expect(response.data).to.have.property('message').that.equals('Answer score updated');
|
||
|
expect(response.data).to.have.property('student_id').that.equals(studentId);
|
||
|
console.log("Answer score updated successfully:", response.data);
|
||
|
} catch (error) {
|
||
|
console.error("Error updating answer score:", error);
|
||
|
throw error;
|
||
|
}
|
||
|
});
|
||
|
});
|