我正在编写一个Jest模拟,但是在模拟本身之外定义模拟函数时似乎有问题。
我有一堂课:
myClass.js
class MyClass {
constructor(name) {
this.name = name;
}
methodOne(val) {
return val + 1;
}
methodTwo() {
return 2;
}
}
export default MyClass;
Run Code Online (Sandbox Code Playgroud)
和一个使用它的文件:
testSubject.js
import MyClass from './myClass';
const classInstance = new MyClass('Fido');
const testSubject = () => classInstance.methodOne(1) + classInstance.name;
export default testSubject;
Run Code Online (Sandbox Code Playgroud)
测试:testSubject.test.js
import testSubject from './testSubject';
const mockFunction = jest.fn(() => 2)
jest.mock('./myClass', () => () => ({
name: 'Name',
methodOne: mockFunction,
methodTwo: jest.fn(),
}))
describe('MyClass tests', () => {
it('test …Run Code Online (Sandbox Code Playgroud)