簡體   English   中英

Sinon匿名存根作為參數傳遞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM