javascript - Angular - 单元测试主题()?
问题描述
我有一个仅使用主题的 Angular 服务,但我不确定如何为其编写单元测试。
我看到了 [this thread][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();
});
编辑 :
您还应该更改创建service
实例的方式。您在代码中显示的内容仅适用于component
实例创建
beforeEach(() => {
TestBed.configureTestingModule({
providers: [MessageService]
});
service = TestBed.get(MessageService); // get service instance
httpMock = TestBed.get(HttpTestingController);
});
推荐阅读
- python - 如何在python中将字节转换为int64
- tableau-api - Tableau 中的错误:已经无法进一步聚合聚合,平均而言
- c - C、添加语句检查输入是否为整数
- multithreading - 运行时错误多处理互斥体 - 进程同步
- openmdao - Dymos 如何使用先前的轨迹解决方案作为初始猜测?
- jquery - 为什么 jquery Google CDN 源会与 jquery.com CDN 源冲突?
- python - 如何在 Jupyter 笔记本上并排显示 YouTube 视频和 matplotlib 图?
- reactjs - 将 Puppeteer 与 Github CI 集成
- function - AutoHotKey,我正在尝试将参数从函数发送到另一个脚本
- javascript - For循环后返回排序数组