[英]mocha & chai, how can I mock expect result?
我的源代碼:
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
結果的“正確”方法是什么?
我要說的是單元測試應該如何工作。 SUT(被測系統)返回的結果(即您正在測試的方法)是在SUT中完成處理的結果。 要測試SUT, 您必須事先知道最終結果是什么 。 這就是為什么建議使用簡單的預期殘值來測試SUT結果的原因,您確信這是正確的 。 當然,某些結果可能是復雜的數據結構,但是您可以選擇僅使用一個或兩個元素對期望的結構進行存根。
再次,期望值,無論多么復雜,都必須易於驗證和簡單到足以使某人能夠使用空運行的SUT到達。 希望這能回答您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.