Mocha / Chai Expect.to.throw: 작동 방식 이해
테스트에서는 오류가 예상대로 발생하는지 확인하는 것이 중요합니다. . 그러나 사용자는 Chai의 Expect.to.throw에서 발생한 오류를 올바르게 포착하지 못하는 문제에 자주 직면합니다. 왜 이런 일이 발생하는지, 어떻게 해결하는지 알아보겠습니다.
문제는 함수 호출 결과를 Expect.to.throw에 직접 전달할 때 발생합니다. 예를 들어, Expect(model.get('z')).to.throw(...)입니다. 이 경우 실제 오류 발생이 아니라 model.get('z')의 반환 값에 대해 어설션하는 것입니다.
이 문제를 해결하려면 호출을 예상하는 함수를 전달해야 합니다. 기대하다. 그런 다음 이 함수는 적절한 인수를 사용하여 model.get을 호출합니다. 다음 코드를 고려하십시오.
expect(model.get.bind(model, 'z')).to.throw('Property does not exist in model schema.');
여기서 model.get.bind(model, 'z')는 호출 시 'z' 인수로 model.get을 호출하여 다음 문제를 해결하는 새 함수를 생성합니다. 문제입니다.
expect.to.throw를 효과적으로 사용하려면 이 동작을 이해하는 것이 필수적입니다. 예상되는 오류를 유발하는 함수를 전달하여 오류 처리 시나리오를 정확하게 테스트하는 것을 잊지 마세요.
위 내용은 `expect.to.throw`가 Chai에서 발생한 오류를 포착하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!