为什么在茉莉花测试中不会引发错误?

时间:2019-07-08 15:41:24

标签: javascript angular typescript jasmine

我正在尝试进行模拟调用,但会抛出错误,但我收到错误消息“ Expected function to throw error”。

下面是我尝试过的代码。我在这里关注了其他一些事情,但运气为零。

it ('should throw err', () => {
    const mockCall = spyOn(service, 'update$').and.returnValue(throwError(new Error(error')));
    expect(mockCall).toThrowError();
});

2 个答案:

答案 0 :(得分:1)

首先,缺少单引号'。接下来,我认为您应该以这种方式实现它:

const mockCall = spyOn(service, 'update$').and.throwError('error');

您不想模拟该函数的返回,而是抛出异常。

答案 1 :(得分:0)

您可以使用callFake模拟并抛出服务方法中的错误。通过将spyand.callFake链接起来,对间谍的所有调用将委托给提供的函数:

spyOn(service, 'update$').and.callFake(() => throwError(new Error('Fake error')));

expect(service.update$()).toThrow();