JS 단위 테스트에서 시작하여 Jasmine 스파이와 함께 의미있는 테스트를 만드는 방법에 대해 머리를 터는 데 어려움을 겪고 있습니다. 나는이 getTotal에 내 전화는 하드 사양 내부 코딩과 같은 유용한 검사 방법 볼 수 없습니다 내가 예제로 만들어 테스트 위의 발췌를 사용Jasmine spyOn 및 스파이를 일반적으로 사용하는 방법
it('should take an array of shopping items', function() {
spyOn(checkObj, 'getTotal');
checkObj.getTotal([1, 2, 3]);
expect(checkObj.getTotal).toHaveBeenCalledWith(jasmine.any(Array));
});
. 그러나 동시에 전달 된 매개 변수가 배열이고 다른 형식이 아닌지 확인하고자합니다 ... 확실한 하드 코딩이 어떻게 든 잘못되었습니다. 누군가가 내가 생각하는 방법에 대한 지침의 비트를 제공 할 수
은/
난 당신이 여기에 잘못된 문제를보고있다 생각합니다. 질문은 당신이 테스트하려고하는 것이 무엇입니까? 지금 가지고있는 코드는 쓸모가 없습니다. 배열로 호출하고 다음 줄에 배열로 호출했는지 확인하십시오. 그것은 말 그대로 테스트를 테스트하고 있습니다. 검증하는 것은 유용한 일이 아닙니다. 여기에서 확인하고 싶은 것이 더 좋은 질문입니까? 'getTotal'이 배열만을 받아들이는지 확인하고 싶다면 아마 다른 것들을 호출해야하고 어떤 종류의 오류가 필요할 것입니다. – vlaz
의견을 보내 주셔서 감사합니다 vlaz, 당신이 말한, 그것은 잘못된 일을하고있는 것 같아요 toHaveBeenCalledWith 인수를 테스트하고 그것을 단순히 메서드의 출력을 테스트하는 것이 좋습니다. 나는 또한 당신의 아이디어를 풀어 줄 것입니다. 제가 확인하고 싶었던 것은 배열이 인수로 전달되고 있지만 테스트 물건을 다 써 버리려하는지 확실하지 않다는 것입니다. – user1806692