Jestでスローされた例外の型をテストする方法 質問する

Jestでスローされた例外の型をテストする方法 質問する

関数によってスローされた例外のタイプ (TypeError、ReferenceError など) をテストする必要があるコードを扱っています。

t.throws私の現在のテスト フレームワークは AVA であり、次のように2 番目の引数メソッドとしてテストできます。

it('should throw Error with message \'UNKNOWN ERROR\' when no params were passed', (t) => {
  const error = t.throws(() => {
    throwError();
  }, TypeError);

  t.is(error.message, 'UNKNOWN ERROR');
});

Jest でテストを書き直し始めましたが、それを簡単に行う方法が見つかりませんでした。それは可能なのでしょうか?

ベストアンサー1

Jest では、関数を に渡す必要がありますexpect(function).toThrow(<blank or type of error>)

例:

test("Test description", () => {
  const t = () => {
    throw new TypeError();
  };
  expect(t).toThrow(TypeError);
});

または、エラー メッセージも確認したい場合は、次のようにします。

test("Test description", () => {
  const t = () => {
    throw new TypeError("UNKNOWN ERROR");
  };
  expect(t).toThrow(TypeError);
  expect(t).toThrow("UNKNOWN ERROR");
});

既存の関数が引数のセットでスローするかどうかをテストする必要がある場合は、 内の匿名関数内にそれをラップする必要がありますexpect()

例:

test("Test description", () => {
  expect(() => {http.get(yourUrl, yourCallbackFn)}).toThrow(TypeError);
});

おすすめ記事