Jasmine で「エラー」がスローされることを想定するテストを書くにはどうすればいいですか? 質問する

Jasmine で「エラー」がスローされることを想定するテストを書くにはどうすればいいですか? 質問する

私はテストを書こうとしています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()が、どうすれば動作するのかわかりません。

ベストアンサー1

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

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

またはラムダを使用します:

expect( () => 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(...)

おすすめ記事