Jest test error: ...subscribe is not a function
Jest test error: ...subscribe is not a function
我正在使用 Jest 测试我的 Angular 应用程序(使用 Nx 工作区)。我有一个组件使用我试图模拟的服务。这是代码:
myDummyService.permissions$.subscribe(permission => return // whatever);
在我的测试中,我模拟了这样的服务:
myDummyServiceMock = {permissions$: jest.fn()}
但是当测试运行并调用构造函数时,出现以下错误:
`myDummyService.permissions$.subscribe is not a function`
我无法模拟订阅功能,那么我该如何解决这个错误呢?我试过了,但我觉得不对:
myDummyServiceMock = {permissions$: jest.fn(), subscribe: jest.fn()}
如果我这样做就可以了,但它是不是格式不对?
myDummyServiceMock = {permissions$: of(true)}
首先permission$
是一个属性,不是一个函数,其次,它应该是一个observable。因此,应该正确定义它,例如在 rxjs
.
的 EMPTY
的帮助下
myDummyServiceMock = {permissions$: EMPTY};
现在有subscribe
、pipe
等方法
如果你想操纵它的发射,你可以使用 Subject
实例而不是 EMPTY
。
我正在使用 Jest 测试我的 Angular 应用程序(使用 Nx 工作区)。我有一个组件使用我试图模拟的服务。这是代码:
myDummyService.permissions$.subscribe(permission => return // whatever);
在我的测试中,我模拟了这样的服务:
myDummyServiceMock = {permissions$: jest.fn()}
但是当测试运行并调用构造函数时,出现以下错误:
`myDummyService.permissions$.subscribe is not a function`
我无法模拟订阅功能,那么我该如何解决这个错误呢?我试过了,但我觉得不对:
myDummyServiceMock = {permissions$: jest.fn(), subscribe: jest.fn()}
如果我这样做就可以了,但它是不是格式不对?
myDummyServiceMock = {permissions$: of(true)}
首先permission$
是一个属性,不是一个函数,其次,它应该是一个observable。因此,应该正确定义它,例如在 rxjs
.
EMPTY
的帮助下
myDummyServiceMock = {permissions$: EMPTY};
现在有subscribe
、pipe
等方法
如果你想操纵它的发射,你可以使用 Subject
实例而不是 EMPTY
。