[英]How to stub a class method inside a function under test using sinon?
//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
方法。 是否可以模拟SomeClass
load
类方法。
任何帮助表示赞赏。
首先,您必须模拟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完成所有操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.