내 소스 코드 :모카와 차이 티, 어떻게 모의 결과를 기대할 수 있습니까?
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'을 실행하고'result'를 주어야합니다. – novaline
나는'당신이'(실제 결과) .toql (예상 결과)'를 할 때 당신의 머리 속에 '예상 된 결과'를 많이 계산해야한다는 것을 의미했다. 쉽게 만들 수 있도록 아주 단순한 데이터 구조를 고려해보십시오. 예를 들어, numArray = [2, 2]를 사용하여 예상 결과를 계산할 수 있습니다. – Piyush
하지만 단순한 경우 충분히 테스트 할 수 없다고 생각합니다. 어쩌면 나는 '기능'을 가능한 한 작게 만들어야 할까? 따라서 쉽게 테스트 할 수 있습니다. – novaline