@@ -4,20 +4,91 @@ const { MyClass, Student } = require('./main');
44
55test ( "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
1029test ( "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
1551test ( "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
2075test ( "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