Chai: Node.js에서 파악하기 어려운 Expect.to.throw 해결
Chai의 Expect.to.throw는 Node.js에서 난처할 수 있습니다. js 테스트 중입니다. 발생한 오류를 주장하려는 의도된 목적에도 불구하고 코드 조각에 직접 적용하면 종종 실패합니다.
문제 이해:
예제 테스트 사례를 고려하세요.
it('should throw an error if you try to get an undefined property', function (done) { // Passing the result of model.get('z') directly fails expect(model.get('z')).to.throw('Property does not exist in model schema.'); });
실제로 오류가 발생했지만 이 테스트는 실패했습니다. 일반적인 오해는 Expect.to.throw가 발생한 오류의 검색 및 어설션을 처리한다는 것입니다.
해결책: 함수 전달 수용:
이 문제를 해결하는 열쇠 문제는 결과 대신 Expect.to.throw에 함수를 전달하는 데 있습니다. 이 함수는 예상에 의해 실행되어 발생한 오류의 검색 및 유효성 검사를 트리거합니다.
expect(model.get.bind(model, 'z')).to.throw('Property does not exist in model schema.');
이 수정된 코드에서 model.get은 모델 객체의 컨텍스트에 바인딩되고 'z'가 설정됩니다. 그 주장으로. 그런 다음 결과 함수가 Expect.to.throw에 전달되어 의도한 오류가 캡처되고 어설션되는지 확인합니다.
이 접근 방식을 따르면 Node.js에서 Expect.to.throw의 모든 기능을 활용할 수 있습니다. Node.js 테스트를 통해 발생한 오류 발생을 효과적으로 확인하고 코드의 견고성을 보장합니다.
위 내용은 Node.js 테스트에서 `expect.to.throw`가 발생한 오류를 확인하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!