用Sinon.mock覆盖函数?

时间:2015-06-10 04:33:25

标签: node.js mocking sinon

该文件说

  

var expectation = mock.expects(“method”);   用mock函数覆盖obj.method并返回它。见下面的期望。

这是什么语法?

我试过

var mock = sandbox.mock(myObj).expects(myObj, "myfunc", function(){
                console.log('please!!!')
            }).once();

    var mock = sandbox.mock(myObj).expects("myfunc", function(){
                console.log('please!!!')
            }).once();

但它们都不起作用。

1 个答案:

答案 0 :(得分:0)

Nitpick:您将变量命名为mock,但expects()会返回预期值。

无论如何,Sinon documentation表示mock()只接受一个参数并返回一个模拟对象。 expects()返回一个期望值,它既是间谍又是存根,所以你可以这样做:

var mock = sinon.mock(myObj).expects('myfunc').returns('something');

如果您想用自定义函数替换myObj.myfunc,可以使用存根,可能是这样的:

var stub = sinon.stub(myObj, 'myfunc', function() {
    console.log('something');
});