javascript – 使用SinonJS存根(带重新连接)

我有一个功能:

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
});
上一篇:18、OSPF学习心得6


下一篇:javascript – 覆盖node.js中其他模块中的函数