web-dev-qa-db-ja.com

引数付きのtoThrow関数ではない-Jasmine

3つの引数を取得する関数があります。この関数がエラーをスローしないことを確認したいと思います。私はこのようなことをしました:

_expect(myFunc).not.toThrow();
_

問題は、myFunc引数を取得する必要があることです。どうすれば引数を送信できますか?

PS私はそれに引数を渡そうとしましたが、myFunc(arg1, arg2, arg3)が関数ではないというエラーが発生しました。

23
Sagie

toThrowマッチャーでは、関数をexpectに引数として渡す必要があるため、関数呼び出しを無名関数でラップするだけで済みます。

expect(function() {
    myFunc(arg1, arg2, arg3);
}).not.toThrow();

bind を使用して、呼び出されたときに引数が渡される関数の新しい「バージョン」を作成することもできます。

expect(myFunc.bind(null, arg1, arg2, arg3)).not.toThrow();
33