无法监视 getNotification() 属性 因为它不是函数;代替给定的未定义

Cannot spy the getNotification() property because it is not a function; undefined given instead

我在 angular 测试用例中的 jest spyOn 中收到此错误。 getNotification 是文件中定义的私有方法。这是写的测试用例:

    const errorSpy = jest.spyOn(service as any, 'getNotification');
    const spy = jest
  .spyOn(service, 'func')
  .mockReturnValue(throwError('error'));
actions$ = of(abc);
effects.abc$.subscribe((res) => {
  expect(errorSpy).toHaveBeenCalled();
  expect(res).toEqual(funcFail({ error: 'error' }));
  expect(spy).toHaveBeenCalledTimes(1);
  done();

由于该函数是私有的,您不能直接访问它。因此,改为使用 prototype 来访问函数:

const errorSpy = jest.spyOn(service.prototype as any, 'getNotification');

这是一个相关主题: