2011-05-06 8 views
10

그래서 QUnit은 예외가 발생했는지 테스트하기 위해 "raise"어설 션을 제공합니다. 거기에 예외에 의해 던져진 실제 메시지를 테스트 할 수있는 방법이 있습니까? 예를 들어, 나는이 기능을 갖고 있다고 :qunit - 테스트 예외 메시지?

throwError = function(arg) { 
    var err = new Error(); 
    if (typeof arg === 'undefined') { 
    err.message = 'missing parameter'; 
    throw err; 
    } 
} 
나는이 라인을 따라 뭔가 쓸 수 있도록하고 싶습니다

: 예외 메시지는 "없기 때문에

raises(
    function(){throwError();}, 
    Error.message, 
    'missing arg' 
); 

이상적으로,이 시험은 실패를 매개 변수 "로 간주하고"누락 된 인수 "가 될 것으로 예상하지만 qunit는 오류가 발생했는지 확인하기 때문에 인수가 전달됩니다. 던져진 예외의 실제 내용을 검사하는 방법은 무엇입니까?

+0

의 QUnit 아닌가요 (http://api.qunitjs.com/throws/) 그 일을 [던졌습니다]이 기능을 감안할 때? –

+0

_throws_ 작동하지만 예외적 인 메시지의 유효성을 검사하지 않습니다. –

답변

18

다른 사람들이 유용하다고 생각할 때를 대비하여 여기에 게시 된 답변을 알아 냈습니다.

throwError = function(arg) { 
    var err = new Error(); 
    if (typeof arg === 'undefined') { 
    err.message = 'missing parameter'; 
    throw err; 
    } 
} 

이 시험은 다음과 같을 것이다 :

raises(
    function(){ 
    throwError(); 
    }, 
    function(err) { 
    return err.message === 'missing arg'; 
    }, 
    'optional - label for output here' 
); 
+0

네, 그것은 매력처럼 작동합니다! – ducin

+0

그래, 이걸 독립적으로 발견 했어. 내가 말할 수있는 한 문서화되지 않은 기능이야. –