假设我有以下课程:
export default class Person {
constructor(first, last) {
this.first = first;
this.last = last;
}
sayMyName() {
console.log(this.first + " " + this.last);
}
bla() {
return "bla";
}
}
假设我想创建一个模拟类,其中方法 'sayMyName' 将被模拟,而方法 '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”语句通过,这意味着“sayMyName”被成功模拟。但是,第二个“期望”失败并出现错误:
类型错误:person.bla 不是函数
我知道模拟类删除了所有方法。我想知道如何模拟一个类,以便只模拟特定的方法。