Jest - 测试try / catch

时间:2018-06-01 12:57:23

标签: javascript testing jestjs

我正在尝试测试这个类方法:

get () {
  try {
    return 'value'
  } catch (e) {
    return 'value2'
  }
}

使用:

test('the get method retrieves value', () => {
  const value = MyClass.get()
  expect(value).toBe('value')
})

我的测试报告显示我测试了方法的try部分,但未测试catch部分。

如何报道catch部分?

3 个答案:

答案 0 :(得分:1)

您还可以通过将函数调用也包装在测试中的my $bin = printf("%b", $hex); 块中来测试catch部分

try catch

答案 1 :(得分:0)

请尝试以下操作:

  test('the fetch fails with an error', async () => {
    expect(() => {
      await fetchData();
    }).toThrow();
  });

更多信息:https://jestjs.io/docs/en/expect#tothrowerror

答案 2 :(得分:0)

您可以将期望值包装在setImmediate()或process.nextTick()中:

test('the fetch fails with an error', async => {
  expect.assertions(1);
  setImmediate(() => {
   expect(fetchData).toMatch('error');
  });
});