父類:
class Person{
constructor(name,age){
this.name = name;
this.age = age;
}
introduce(){
return `My name is ${this.name}. I am ${this.age} years old.`;
}
}
module.exports = Person;
子類:
import Person from "../../src/practice_7/person.js"
class Teacher extends Person{
constructor(name, age, klass){
super(name, age);
this. klass = klass;
}
introduce(){
if(this.klass === undefined){
return `${super.introduce()} I am a Teacher. I teach No Class.`
}else{
return `${super.introduce()} I am a Teacher. I teach Class ${this.klass}.`;
}
}
introduceWith(studentJerry){
if(studentJerry.klass === this.klass){
return `${super.introduce()} I am a Teacher. I teach Jerry.`
}else{
return `${super.introduce()} I am a Teacher. I don't teach Jerry.`
}
}
}
module.exports = Teacher;
測試函數(shù)
"use strict";
import _ from "lodash";
import chai from "chai";
import sinon from "sinon";
import sinonChai from "sinon-chai";
const expect = chai.expect;
chai.use(sinonChai);
import Person from "../../src/practice_7/person.js";
import Student from "../../src/practice_7/student.js";
import Teacher from "../../src/practice_7/teacher-option2.js";
import Class from "../../src/practice_7/class.js";
describe("Teacher", () => {
let klass;
before(() => {
klass = new Class(2);
});
it("should have field name, age and class number", () => {
const teacher = new Teacher("Tom", 21, klass);
expect(teacher.name).to.equal("Tom");
expect(teacher.age).to.equal(21);
expect(teacher.klass).to.equal(klass);
});
});
describe("#introduce", () => {
it.only("should overwrite Person introduce, introduce with name, age and class number, given teacher have class", () => {
const teacher = new Teacher("Tom", 21, klass);
const introduce = teacher.introduce();
expect(introduce).to.equal("My name is Tom. I am 21 years old. I am a Teacher. I teach Class 2.");
});
it("should overwrite Person introduce, introduce with name, age and class number, given teacher have no class", () => {
const teacher = new Teacher("Tom", 21);
const introduce = teacher.introduce();
expect(introduce).to.equal("My name is Tom. I am 21 years old. I am a Teacher. I teach No Class.");
});
});
describe("#introduceWith", () => {
let studentJerry;
before(() => {
studentJerry = new Student("Jerry", 8, klass);
});
it("should return I am teaching some guy, given my class is same with this guy's class", () => {
const teacher = new Teacher("Tom", 21, klass);
const introduce = teacher.introduceWith(studentJerry);
expect(introduce).to.equal("My name is Tom. I am 21 years old. I am a Teacher. I teach Jerry.");
});
it("should return I am teaching some guy, given my class is different with this guy's class", () => {
const teacher = new Teacher("Tom", 21, new Class(10));
const introduce = teacher.introduceWith(studentJerry);
expect(introduce).to.equal("My name is Tom. I am 21 years old. I am a Teacher. I don't teach Jerry.");
});
});
用npm test運行后,提示:
+ expected - actual
-My name is Tom. I am 21 years old. I am a Teacher. I teach Class [object Object].
+My name is Tom. I am 21 years old. I am a Teacher. I teach Class 2.北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。