2017-02-20 73 views
0

我想存根参数的方法。存根参数的函数

我通常使用我的对象,像这样:

const res = await Obj.find('admin', 'type'); 

这工作。它或者返回null或者一个对象。

我通常存根这个像这样:

sandbox.stub(Obj.prototype, 'find', function() { 
    return Promise.resolve({ id: 123 }); 
}); 

我想存根它,这样的参数都考虑在内。我一直在阅读http://sinonjs.org/docs/#stubs和它应该如下所示:

const stub = sinon.stub(Obj.prototype.find); 
stub.withArgs('admin', 'type') 
    .returns(Promise.resolve({ id: 123 })); 
stub.withArgs('user', 'type').returns(null); 

然而,我得到的错误:

TypeError: Attempted to wrap undefined property undefined as function 
    at Object.wrapMethod (node_modules/sinon/lib/sinon/util/core.js:114:29) 
    at Object.stub (node_modules/sinon/lib/sinon/stub.js:67:26) 

console.log(Obj.prototype.find);结果:

[Function: find] 
+0

什么是stub.js的第67行,第26列? – rasmeister

回答

0

Arghhh,我是几乎正确。以下是工作代码:

const stub = sinon.stub(Obj.prototype, 'find'); 
stub.withArgs('admin', 'type') 
    .returns(Promise.resolve(new User({ id: 123 }))); 
stub.withArgs('user', 'type').returns(null);