Sinon Stub.returns() 未返回正确的值

psv*_*svj 1 sinon

根据文档,Sinon stub.returns() 方法不会返回正确的响应。有什么想法吗?

stubThis = sinon.stub().returns('123');

console.log(stubThis); // returns stub, but expect it to return 123
Run Code Online (Sandbox Code Playgroud)

and*_*dyk 5

您需要调用stubThisconsole.log(stubThis());

当你调用时,sinon.stub()你会得到一个返回的函数undefined

var stub = sinon.stub();
stub() // return undefined
Run Code Online (Sandbox Code Playgroud)

当您调用.returns该函数上的方法时,您指定其返回值并取回原始函数:

stub.returns('123') === stub; // true
stub() // now returns '123'
Run Code Online (Sandbox Code Playgroud)

所以在你上面的代码中stubThis不应该是'123'. 它是一个返回值为 的函数'123'。您只需要调用stubThis

console.log(stubThis()); // logs '123'
Run Code Online (Sandbox Code Playgroud)