我正在尝试在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);

09-30 13:00