我正在尝试进行模拟调用,但会抛出错误,但我收到错误消息“ Expected function to throw error”。
下面是我尝试过的代码。我在这里关注了其他一些事情,但运气为零。
it ('should throw err', () => {
const mockCall = spyOn(service, 'update$').and.returnValue(throwError(new Error(error')));
expect(mockCall).toThrowError();
});
答案 0 :(得分:1)
首先,缺少单引号'
。接下来,我认为您应该以这种方式实现它:
const mockCall = spyOn(service, 'update$').and.throwError('error');
您不想模拟该函数的返回,而是抛出异常。
答案 1 :(得分:0)
您可以使用callFake
模拟并抛出服务方法中的错误。通过将spy
与and.callFake
链接起来,对间谍的所有调用将委托给提供的函数:
spyOn(service, 'update$').and.callFake(() => throwError(new Error('Fake error')));
expect(service.update$()).toThrow();