0
這是一個真實的場景的簡化稱爲發生器功能:如何測試使用CO
我有一個名爲三個parameters.Two整數和一個函數發生器功能。第三個參數函數可以添加兩個整數。
//My add function
var fn = (a,b)=>a+b;
//My generator function
var genFn = function*(a,b,fn){
b = yield fn(a,b);
b = yield fn(a,b);
return b;
};
我還有一個功能,它包裝使用CO
//My wrapper function
var coGen = (a,b,fn)=>{
co(genFn.bind(null,a,b,fn))
};
在我的測試情況下,發電機的功能,我想知道有多少次我函數「FN」之稱。
我試圖通過使用sinon間諜來做到這一點。
var spy =sinon.spy(fn);
coGen(1,2,spy);
當我做到這一點,並檢查callCount的間諜,它總是返回1. 雖然在現實中,間諜獲得通過,並多次調用。當我在我的genFn函數中檢查呼叫計數時,它會給我正確的計數。
我相信,我沒有以正確的方式測試它。有人能給我一些關於如何測試的想法嗎?謝謝。