diff --git a/lab1/README.md b/lab1/README.md index 5b2779a5..df0ab9f5 100644 --- a/lab1/README.md +++ b/lab1/README.md @@ -2,7 +2,7 @@ ## Introduction -In this lab, you will write unit tests for functions implemented in `main.js`. You can learn how to use classes and functions in it by uncommenting the code in `main.js.` (But remember don't commit them on GitHub) +In this lab, you will write unit tests for functions implemented in `main.js`. You can learn how to use classes and functions in it by uncommenting the code in it. (But remember don't commit them on GitHub) ## Requirement diff --git a/lab1/main_test.js b/lab1/main_test.js index 74a716b4..1b0c85d9 100644 --- a/lab1/main_test.js +++ b/lab1/main_test.js @@ -2,22 +2,44 @@ const test = require('node:test'); const assert = require('assert'); const { MyClass, Student } = require('./main'); -test("Test MyClass's addStudent", () => { - // TODO - throw new Error("Test not implemented"); -}); - +test("Test MyClass's addStudent", ()=>{ + // TODO + const student = new Student(); + const myClass = new MyClass(); + student.setName("John"); + const newStudentId = myClass.addStudent(student); + assert.strictEqual(newStudentId, 0,"正確"); + const notstudentID=111; + const newStudentId2 = myClass.addStudent(notstudentID); + assert.strictEqual(newStudentId2,-1,"錯誤"); + +}); test("Test MyClass's getStudentById", () => { - // TODO - throw new Error("Test not implemented"); + // TODO + const student = new Student(); + const myClass = new MyClass(); + student.setName("kevin"); + myClass.addStudent(student); + const newStudentName = myClass.getStudentById(0); + assert.strictEqual(newStudentName.getName(), "kevin","正確"); + const newStudentName2 = myClass.getStudentById(-1); + assert.strictEqual(newStudentName2, null,"錯誤"); + }); - test("Test Student's setName", () => { // TODO - throw new Error("Test not implemented"); + const student = new Student(); + student.setName("John"); + assert.strictEqual(student.getName(), "John","正確"); + student.setName(111); + assert.strictEqual(student.getName(),"John","錯誤"); + }); - test("Test Student's getName", () => { // TODO - throw new Error("Test not implemented"); -}); \ No newline at end of file + const student = new Student(); + assert.strictEqual(student.getName(),'',"錯誤"); + student.setName("John"); + assert.strictEqual(student.getName(), "John","正確"); + +});