假设我有以下课程:
export default class Person {
constructor(first, last) {
this.first = first;
this.last = last;
}
sayMyName() {
console.log(this.first + " " + this.last);
}
bla() {
return "bla";
}
}
假设我想创建一个模拟类,其中方法‘ say MyName’将被模拟,而方法‘ bla’将保持不变。
我写的测试是:
const Person = require("../Person");
jest.mock('../Person', () => {
return jest.fn().mockImplementation(() => {
return {sayMyName: () => {
return 'Hello'
}};
});
});
let person = new Person();
test('MyTest', () => {
expect(person.sayMyName()).toBe("Hello");
expect(person.bla()).toBe("bla");
})
第一个“ Expect”语句通过,这意味着成功地模拟了“ say MyName”。但是,第二个“ Expect”失败,出现错误:
TypeError: Person.bla 不是一个函数
我知道模拟类擦除了所有方法。 我想知道如何模拟类,以便只模拟特定的方法。