我有一个仅使用 Subject 的 Angular 服务,但我不确定如何为其编写单元测试。
我看到了[这个话题][1],但我觉得它没有太大帮助。
我试图模拟 next()
但我有点迷路了。
最佳答案
你应该监视 service.serviceMsg
而不是 service
,因为 next()
方法似乎在 serviceMsg
主题。
it('should catch what is emitted', () => {
const nextSpy = spyOn(service.serviceMsg, 'next');
service.confirm(ACTION);
expect(nextSpy).toHaveBeenCalled();
});
编辑:
您还应该更改创建服务
实例的方式。您在代码中显示的内容仅适用于 component
实例创建
beforeEach(() => {
TestBed.configureTestingModule({
providers: [MessageService]
});
service = TestBed.get(MessageService); // get service instance
httpMock = TestBed.get(HttpTestingController);
});
关于javascript - Angular - 单元测试主题()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52091882/