Skip to content

Commit 3c5992a

Browse files
authored
Merge pull request #103 from nanlioniya/313553005
[LAB1] 313553005
2 parents 91be79d + 231de10 commit 3c5992a

1 file changed

Lines changed: 76 additions & 5 deletions

File tree

lab1/main_test.js

Lines changed: 76 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,91 @@ const { MyClass, Student } = require('./main');
44

55
test("Test MyClass's addStudent", () => {
66
// TODO
7-
throw new Error("Test not implemented");
7+
8+
const myClass = new MyClass();
9+
10+
const student = new Student();
11+
student.setName("Kodak");
12+
const id = myClass.addStudent(student);
13+
assert.strictEqual(id, 0);
14+
15+
// 測試新增第二個學生
16+
const student2 = new Student();
17+
student2.setName("Contax");
18+
const id2 = myClass.addStudent(student2);
19+
assert.strictEqual(id2, 1); // 第二個學生的 ID 應該是 1
20+
21+
// 測試新增非 Student 實例
22+
const invalidStudent = { name: "Invalid" };
23+
const invalidId = myClass.addStudent(invalidStudent);
24+
assert.strictEqual(invalidId, -1); // 應該返回 -1
25+
26+
//throw new Error("Test not implemented");
827
});
928

1029
test("Test MyClass's getStudentById", () => {
1130
// TODO
12-
throw new Error("Test not implemented");
31+
32+
const myClass = new MyClass();
33+
const student = new Student();
34+
student.setName("Kodak");
35+
myClass.addStudent(student);
36+
37+
// 測試有效的 ID
38+
const foundStudent = myClass.getStudentById(0);
39+
assert.strictEqual(foundStudent, student);
40+
41+
// 測試負數 ID
42+
const nullStudent1 = myClass.getStudentById(-1);
43+
assert.strictEqual(nullStudent1, null);
44+
45+
// 測試超出範圍的 ID
46+
const nullStudent2 = myClass.getStudentById(999);
47+
assert.strictEqual(nullStudent2, null);
48+
//throw new Error("Test not implemented");
1349
});
1450

1551
test("Test Student's setName", () => {
1652
// TODO
17-
throw new Error("Test not implemented");
53+
const student = new Student();
54+
55+
// 測試設定有效的名字
56+
student.setName("Kodak");
57+
assert.strictEqual(student.getName(), "Kodak");
58+
59+
// 測試設定空字串
60+
student.setName("");
61+
assert.strictEqual(student.getName(), "");
62+
63+
// 測試設定非字串值
64+
student.setName(123); // 應該被忽略
65+
assert.strictEqual(student.getName(), ""); // 名字應該保持不變
66+
67+
student.setName(null); // 應該被忽略
68+
assert.strictEqual(student.getName(), ""); // 名字應該保持不變
69+
70+
student.setName(undefined); // 應該被忽略
71+
assert.strictEqual(student.getName(), ""); // 名字應該保持不變
72+
//throw new Error("Test not implemented");
1873
});
1974

2075
test("Test Student's getName", () => {
2176
// TODO
22-
throw new Error("Test not implemented");
23-
});
77+
const student = new Student();
78+
79+
// 測試初始狀態(未設定名字)
80+
assert.strictEqual(student.getName(), "");
81+
82+
// 測試設定名字後的狀態
83+
student.setName("Kodak");
84+
assert.strictEqual(student.getName(), "Kodak");
85+
86+
// 測試設定空字串
87+
student.setName("");
88+
assert.strictEqual(student.getName(), "");
89+
90+
// 直接修改 name 為 undefined
91+
student.name = undefined;
92+
assert.strictEqual(student.getName(), "");
93+
//throw new Error("Test not implemented");
94+
});

0 commit comments

Comments
 (0)