我正在尝试在redux容器中测试功能,但问题几乎与redux或反应无关。基本上,我要测试的fetchData函数将两个函数作为参数并调用它们。
我希望做的是拥有两个匿名存根,并通过这种方式将它们传递给函数:
var firstStub = sinon.stub().withArgs(mockResponse).returns('success');
var secondStub = sinon.stub().withArgs(mockResponse).returns('success');
AccountApp.fetchData({ firstStub , secondStub });
发生这种情况时,我的函数fetchData会抱怨firstStub和secondStub不是函数。我知道它们是存根对象,但是如果是这种情况,什么是管理这种情况的正确方法。
最佳答案
传递存根为
AccountApp.fetchData({ firstStub , secondStub });
似乎是罪魁祸首,因为这意味着您实际上(在ES6调试之后)调用了此命令:
AccountApp.fetchData({ firstStub: firstStub, secondStub: secondStub });
这意味着您的fetchData()函数将需要具有以下实现:
function(args) {
// ....
args.firstStub(params);
args.secondStub(params);
// ...
};
我严重怀疑您的生产代码将这些回调称为“存根”。因此,您可能想调用以下函数:
AccountApp.fetchData(firstStub, secondStub);