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