我有一个功能:
var publish = function(a, b, c) {
main = a + getWriterName(b,c);
}
和getWriterName是另一个函数:
var getWriterName = function(b,c) {
return 'Hello World';
}
我想测试“发布”功能,但我不想在测试“发布”时运行“getWriterName”函数.我觉得我存在getWriterName函数,因为我不想每次测试“发布”时运行它,但我该怎么做?我做了类似的事情:
var sandbox = sinon.sandbox.create();
sandbox.stub(getWriterName).returns('done');
但这给了我一个错误
TypeError: Attempted to wrap undefined property undefined as function
如果我在写路径中,我的存根有什么问题?
编辑:
我正在使用重新布线,所以希望解决方案使用重新布线
解决方法:
这就是Sinon如何与Rewire一起使用来存根函数.如果存根函数是私有的,则在这种情况下重新连接特别有用.
it('getWriteName always returns "Hello World"', function() {
var stub = sandbox.stub();
stub.returns('Hello World');
var unset = log.__set__('getWriterName', stub);
// your test and expectations here
unset();
// it's always good to restore the previous state
});