1. ホーム
  2. javascript

[解決済み] Jasmineで'Error'が投げられることを期待するテストを書くには、どうすればよいですか?

2022-03-18 03:39:24

質問

のテストを書こうとしています。 Jasmineテストフレームワーク エラーを期待するものです。今のところ、私は GitHubからのJasmine Node.jsインテグレーション .

私のNode.jsモジュールでは、以下のようなコードになっています。

throw new Error("Parsing is not possible");

さて、このエラーを想定したテストを書いてみます。

describe('my suite...', function() {
    [..]
    it('should not parse foo', function() {
    [..]
        expect(parser.parse(raw)).toThrow(new Error("Parsing is not possible"));
    });
});

また Error() と他のバリエーションがありますが、どうすればうまくいくのかがわかりません。

解決方法は?

代わりに無名関数を使用してみてください。

expect( function(){ parser.parse(raw); } ).toThrow(new Error("Parsing is not possible"));

に関数を渡す必要があります。 expect(...) を呼び出します。あなたの間違ったコード

// incorrect:
expect(parser.parse(raw)).toThrow(new Error("Parsing is not possible"));

が実際にやろうとしているのは コール parser.parse(raw) に渡そうとしている。 expect(...) ,