我正在使用 if-branch 測試代碼fVal => { if(!fCache[idxF]) fCache[idxF] = {} fCache[idxF][idxCb] = fVal}這是由工作服“錯過”聲明。但是,如果我刪除該 if 行, 測試將失敗并抱怨 undefined prop:fCache[idxF][idxCb]=fVal; ^TypeError: Cannot set property '0' of undefined這正是 if 分支糾正的錯誤。那么為什么它在報道中被宣布為“錯過”呢?添加。這是失敗的測試:test('ap over single CPS function', t => { const cpsFun = cb => cb(42) const cpsNew = ap(cb => cb(x => x*2))(cpsFun) cpsNew(t.cis(84))})以及正在測試的相關(guān)代碼片段:const ap = (...fns) => cpsFn => { let fCache = {}, argsCache = {} ... fns.forEach((f, idxF) => f(...cbs.map((cb, idxCb) => fVal => { if(!fCache[idxF]) fCache[idxF] = {} ... } ))) } return cpsNew}
代碼覆蓋率顯示 if-branch 丟失但刪除它會導(dǎo)致錯誤
桃花長相依
2021-06-21 15:26:06