0
我的源代碼:摩卡和柴,我該如何模擬預期結果?
function getElementCountOfArray(arr) {
var countObj = {};
arr.forEach((element) => {
if(countObj[element]) {
countObj[element] ++;
} else {
countObj[element] = 1;
}
});
return countObj;
}
module.exports = getElementCountOfArray;
我的測試代碼:
describe('getElementCountOfArray', function() {
it('test case 1', function() {
var numArray = [2, 2, 3, 6, 7, 7, 7, 7, 8, 9];
var result = {
2: 2,
3: 1,
6: 1,
7: 4,
8: 1,
9: 1
};
expect(getElementCountOfArray(numArray)).to.eql(result);
});
});
的result
是我自己計算,我真的覺得是不正確的。
如果result
是複雜的數據結構,手動計算並不是一個好主意。我可以在result
上犯一個錯誤。
那麼,模擬expect
結果的「正確」方法是什麼?
謝謝你的支持。無法完全理解,這是否意味着我必須將最終的「結果」給予「期望」?如果是這樣,我必須在我的頭上運行'function'並給出結果。 – novaline
我的意思是當你期望(實際結果).to.eql(預期結果)時,你必須非常計算你腦海中的'預期結果'。爲了方便起見,可能只是考慮一個非常簡單的數據結構。例如,您可以簡單地使用numArray = [2,2]來計算預期結果。 – Piyush
但我認爲簡單的情況下測試不夠好。也許我應該儘可能少做我的'功能'?所以它可以很容易地測試。 – novaline