//Some utility
import SomeClass from 'someclass';
const LoadService = {
getData(){
const someClassInstance = new SomeClass('param1', 'param2');
return someClassInstance.load('param33')
},
};
module.exports =LoadService;
打算通过模拟SomeClass
测试LoadService,因为SomeClass
已经过测试。
我使用sinon 2.1.0
。
我想检查LoadService的getData
方法。是否可以模拟load
的{{1}}类方法。
感谢任何帮助。
答案 0 :(得分:1)
首先,您必须模拟someClass
模块,以便它返回一个开玩笑的间谍并将此模块导入您的测试。
import SomeClass from 'someClass'
jest.mock('someclass', ()=>jest.fn())
然后你需要为load
函数和模块本身创建间谍。
const load = jest.fn()
SomeClass.mockImplementation(jest.fn(()=>({load})))
调用LoadService
后,您可以检查模块本身和load
函数是否被调用
expect(someClassMock).toHaveBeenCalledWith('param1', 'param2')
expect(load).toHaveBeenCalledWith('param33')
因此毕竟没有必要使用Sinon,所有事情都可以使用Jest
完成