2017-10-16 2 views
0

인수를 취하는 함수에 expect().to.throw()을 호출해야합니다. 그것이 오류가 발생하지 않습니다 의미 인수없이 func를 호출하기 때문에,노드 : 인수를 취하는 함수에 chai의 expect.to.throw 사용

var func = function(x) { 
    if (x > 1) { 
    throw new Error() 
    } else { 
    console.log('hello') 
    } 
} 
expect(func).to.throw() 

이 실패 예를 들어, 나는 다음을 말한다. 하지만 expect(func(2)).to.throw()으로 전화하면 AssertionError: expected undefined to be a function이됩니다. 함수가 호출되고 반환 값은 expect으로 전달됩니다.

어떻게 expect().to.throw()을 사용할 수 있으며 포함 된 함수 인수를 제공 할 수 있습니다. expect(() => {func(2)}).to.throw()과 같은 익명의 기능을 사용하여이를 수행 할 수있는 유일한 방법입니까?

답변

1

이것은 차이 docs에서입니다 :

특정 인수를 통과 할 때 기능 (FN)이 발생한다는 주장해야 할 경우, 다른 함수의 내부 fn을하기 위해 전화를 포장.

expect(function() { fn(42); }).to.throw(); // Function expression 
expect(() => fn(42)).to.throw();    // ES6 arrow function 
+2

'바인드()'도 좋은 옵션이다. '(), 널 (fn.bind 42) 예상 to.throw()' –

관련 문제