2013-04-12 4 views
3

should.js (또는 node.js)에 의해 던져진 캐치되지 않는 예외를 처리하고 어설 션이 실패한 동일한 함수/블록에서 실행을 유지하는 방법은 무엇입니까?should.js를 어설트하는 방법

나는 try/catch에서 어설 션을 래핑하려고 시도했지만 process.on ('uncaughtexception')으로 올라가는 것 같습니다.

마지막으로 프로덕션 코드에서 어설 션을 사용하여 속성의 유효성을 검사하는 것이 좋습니다.

감사합니다.

답변

0

documentation 상태로, 노드의 어설 션은 기본적으로 단위 테스트 용입니다. 따라서 프로덕션 코드에서는 사용하지 않을 것입니다. 나는 어설 션이 여러 상황에서 사실인지 확인하기 위해 단위 테스트를 선호한다.

그러나 나는 여기에 잘못된 방법으로 어설 션을 사용하고 있다고 생각합니다. 어설 션이 실패하면 뭔가 잘못되었습니다. 앱이 알 수없는 상태입니다.

잘못된 개체에 대해 어떤 종류의 처리가있는 경우 assert는 올바른 도구가 아닙니다. 귀하의 유스 케이스를 이해하는 한 실제로 개체를 유효하게 할 필요는 없지만 그렇지 않은 경우 다른 작업을 수행하려고합니다. . 그건 단순한 조건이지 주장이 아닙니다.

+0

감사합니다. 객체를 검증하기 위해 should.js를 사용하는 이유는 설명이 쉽고 단위 테스트에서 코드를 재사용 할 수 있기 때문입니다. – dublx

0

안녕하세요 @dublx 나는 프로덕션 코드에서 어설 션을 사용하는 완벽하게 유효한 유스 케이스가 있다고 생각합니다. 예 : 특정 방식으로 작동하는 것으로 알고있는 외부 API에 의존하는 경우 이 API는 갑자기 변경되어 코드가 손상 될 수 있습니다. API가 변경되었다는 주장이 나오면 자동 전자 메일을 받게되므로 고객이 휴식을 인식하기 전에 해결할 수 있습니다.

그건 정확히 내가 당신의 문제를 해결 assume.js을 추천했다. 성능도 훌륭합니다. 하나의 주장은 단지 17μs 또는 0.017ms를 먹습니다.