【发布时间】:2020-07-31 18:47:28
【问题描述】:
我试图对节点中的一个函数进行单元测试,该函数在任何情况下都会引发错误。这是我的节点函数定义。
public testFunction() {
throw new Error('Test Error');
}
正如你所见,这个函数在被调用时总是抛出一个错误。我尝试使用 jest .toThrow(error?) 方法对此函数执行单元测试。我无法按预期对函数进行单元测试。
下面提到的是我编写的测试用例,并附上了我在执行时遇到的错误的屏幕截图。
测试用例 #1
it('Should throw test error', (done) => {
const testClass = TestClassService.getInstance();
expect(testClass.testFunction()).toThrow();
});
测试用例 #2
it('Should throw test error', (done) => {
const testClass = TestClassService.getInstance();
expect(testClass.testFunction).toThrow();
});
测试用例 #3
来自this博客,有人提到
如果我们希望函数在某些情况下抛出异常 输入参数,关键是我们必须传入一个函数 定义而不是在期望中调用我们的函数。
所以我将我的测试用例更新为
it('Should throw test error', (done) => {
const testClass = TestClassService.getInstance();
expect(() => testClass.testFunction()).toThrow();
});
但它会抛出类似的错误
我的实施有什么问题?对抛出错误对象的函数进行单元测试的正确方法是什么?
【问题讨论】:
标签: javascript node.js unit-testing jestjs