[英]Sinon anonymous stub passed as a parameter
我試圖在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 desugaring之后)調用了這個:
AccountApp.fetchData({ firstStub: firstStub, secondStub: secondStub });
這意味着你的fetchData()函數需要有這樣的實現:
function(args) {
// ....
args.firstStub(params);
args.secondStub(params);
// ...
};
我嚴重懷疑你的生產代碼將那些回調稱為“存根”。 所以你可能想調用這樣的函數:
AccountApp.fetchData(firstStub, secondStub);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.