如果参数匹配(如存根路由),如何使存根 return 成为特定存根?
How to have a stub return a specific stub if parameters match (like stub routing)?
所以我的代码基本上是这样的:
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".[=14=,则传递到我的存根的参数基本上传递到我的 getConfig 调用]
在哪里这样称呼:
myFunction(
{
name: "Configuration,
params: {
key: "value"
}
}
有道理吗?正确的 Sinon 方法是什么?
提前致谢!
您可以使用 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
});
所以我的代码基本上是这样的:
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".[=14=,则传递到我的存根的参数基本上传递到我的 getConfig 调用]
在哪里这样称呼:
myFunction(
{
name: "Configuration,
params: {
key: "value"
}
}
有道理吗?正确的 Sinon 方法是什么?
提前致谢!
您可以使用 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
});