From 457a4050332e0c13977657bafc681b5759c56320 Mon Sep 17 00:00:00 2001 From: DENGRENHAO Date: Thu, 29 Feb 2024 19:42:57 +0800 Subject: [PATCH] finish lab1/main_test.js --- lab1/main_test.js | 56 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 8 deletions(-) diff --git a/lab1/main_test.js b/lab1/main_test.js index 74a716b4..37a0c281 100644 --- a/lab1/main_test.js +++ b/lab1/main_test.js @@ -2,22 +2,62 @@ const test = require('node:test'); const assert = require('assert'); const { MyClass, Student } = require('./main'); +// const myClass = new MyClass(); +// const names = ['John', 'Jane', 'Doe', 'Smith']; +// names.forEach(name => { +// const student = new Student(); +// student.setName(name); +// const newStudentId = myClass.addStudent(student); +// const newStudentName = myClass.getStudentById(newStudentId).getName(); +// console.log('[+] Added student with id: %d, name: %s', newStudentId, newStudentName); +// }); + test("Test MyClass's addStudent", () => { - // TODO - throw new Error("Test not implemented"); + const myClass = new MyClass(); + const names = ['John', 'Jane', 'Doe', 'Smith']; + for (let i = 0; i < names.length; i++) { + const student = new Student(); + const validStudentId = myClass.addStudent(student); + assert.strictEqual(validStudentId, i); + } + + const invalidStudentId = myClass.addStudent({}); + assert.strictEqual(invalidStudentId, -1); }); test("Test MyClass's getStudentById", () => { - // TODO - throw new Error("Test not implemented"); + const myClass = new MyClass(); + const names = ['John', 'Jane', 'Doe', 'Smith']; + names.forEach(name => { + const student = new Student(); + student.setName(name); + const newStudentId = myClass.addStudent(student); + const newStudentName = myClass.getStudentById(newStudentId).getName(); + assert.strictEqual(newStudentName, name); + }); + + const nonExistingStudent = myClass.getStudentById(4); + assert.strictEqual(nonExistingStudent, null); + + const nonExistingStudent_2 = myClass.getStudentById(-1); + assert.strictEqual(nonExistingStudent_2, 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(123); + assert.strictEqual(student.getName(), 'John'); }); test("Test Student's getName", () => { - // TODO - throw new Error("Test not implemented"); + const student = new Student(); + + assert.strictEqual(student.getName(), ''); + + student.setName('John'); + assert.strictEqual(student.getName(), 'John'); }); \ No newline at end of file