所以我的代码基本上是这样的:
var myStub = sinon.stub();
myStub.withArgs(sinon.match.has("key":"value")).returns({status: "OK!"});
我想在这样的存根中使用它:
stub.WithArgs(sinon.match.has("name","Configuration)).returns(myStub(params))
仅当存在名为“ name”且值为“ Configuration”的属性时,传递给我的存根的参数才基本上传递给getConfig调用。
这样的地方:
myFunction(
{
name: "Configuration,
params: {
key: "value"
}
}
那有意义吗?诗乃的正确做法是什么?
谢谢!
答案 0 :(得分:0)
您可以使用callsFake
:
stub.withArgs(sinon.match.has("name", "Configuration")).callsFake((arg) => myStub(arg.params));
这是一项完整的Jest
工作测试:
import * as sinon from 'sinon';
test('call stub from stub', () => {
var myStub = sinon.stub();
myStub.withArgs(sinon.match.has("key", "value")).returns({ status: "OK!" });
const stub = sinon.stub();
stub.withArgs(sinon.match.has("name", "Configuration")).callsFake((arg) => myStub(arg.params));
const response = stub({
name: "Configuration",
params: {
key: "value"
}
});
expect(response).toEqual({ status: "OK!" }); // SUCCESS
});