Sinon stub.returns() 没有返回正确的值

Sinon stub.returns() not returning correct value

Sinon stub.returns() 方法没有 return 根据文档的正确响应。任何想法为什么?

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

console.log(stubThis); // returns stub, but expect it to return 123

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

当您调用 sinon.stub() 时,您会得到一个 returns undefined:

的函数
var stub = sinon.stub();
stub() // return undefined

当您对该函数调用 .returns 方法时,您指定它的 return 值并取回原始函数:

stub.returns('123') === stub; // true
stub() // now returns '123'

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

console.log(stubThis()); // logs '123'