Angular单元测试中的.subscribe()
创始人
2024-10-23 22:30:26
0

在进行Angular单元测试中,想要对组件中涉及到的Observable进行测试,而且还需要检测.subscribe()方法的正确性。这时可以采用Angular提供的测试框架中的TestBed来模拟整个组件环境,创建组件的实例,并对其中的Observable进行订阅。以下是代码示例:

1.引入必要的模块和服务

import { TestBed } from '@angular/core/testing'; import { HttpClientTestingModule } from '@angular/common/http/testing'; import { MyService } from './my.service'; import { of } from 'rxjs';

2.创建组件实例

describe('MyComponent', () => { let component: MyComponent; let fixture: ComponentFixture; let myService: MyService;

beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ MyComponent ], imports: [ HttpClientTestingModule ], providers: [ MyService ] }) .compileComponents(); }));

beforeEach(() => { fixture = TestBed.createComponent(MyComponent); component = fixture.componentInstance; myService = TestBed.get(MyService); });

3.模拟Observable和.subscribe()

it('should call .subscribe() on myObservable', () => { const myObservable = of('test data');

spyOn(myObservable, 'subscribe');

myService.getData().subscribe();

expect(myObservable.subscribe).toHaveBeenCalled(); });

以上代码通过创建组件实例和注入服务来模拟整个组件环境,然后创建myObservable的Observable实例,并使用spyOn方法对其.subscribe方法进行拦截,最后调用getData()方法并订阅myObservable,通过expect方法验证.subscribe()是否得到正确的调用。

相关内容

热门资讯

一起来讨论!wpk线上实战,德... 一起来讨论!wpk线上实战,德州之星辅助透视,详细教程(有挂了解)-哔哩哔哩相信很多朋友都在电脑上玩...
一分钟带你了解!wepoke软... 一分钟带你了解!wepoke软件透明挂辅助,微扑克有机器人,详细教程(有挂透明)-哔哩哔哩;玩家必备...
两分钟了解!aapoker辅助... 两分钟了解!aapoker辅助,(wEpoKe)软件透明挂,详细教程(有挂透明)-哔哩哔哩;aapo...
大神推荐!(WepoKe)软件... 此外,数据分析德州(WepoKe)辅助神器app还具备辅助透视行为开挂功能,通过对客户WepoKe透...
必备攻略!云扑克确实真的有挂,... 必备攻略!云扑克确实真的有挂,来玩德州扑克约局神器,详细教程(有挂总结)-哔哩哔哩;支持多人共享记分...
程序员教你!红龙扑克辅助器,(... 1、程序员教你!红龙扑克辅助器,(wEPOKE)软件透明挂,详细教程(有挂了解)-哔哩哔哩。2、红龙...
传递经验!wepokeai辅助... 这是一款非常优秀的wpk代理合作 ia辅助检测软件,能够让你了解到wpk代理合作中牌率当中全部隐藏参...
必备教程!(WEPOke)软件... 必备教程!(WEPOke)软件透明挂,aapoker俱乐部,详细教程(有挂总结)-哔哩哔哩;亲们利用...
透视有挂!wpk职业代打,(W... 透视有挂!wpk职业代打,(WepOke)软件透明挂,详细教程(有挂总结)-哔哩哔哩这是由厦门游乐互...
教学盘点!扑克世界辅助,手机云... 教学盘点!扑克世界辅助,手机云扑克辅助,详细教程(有挂攻略)-哔哩哔哩;原来确实真的有挂(需添加指定...