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()是否得到正确的调用。

相关内容

热门资讯

透视ai代打!aapoker辅... 透视ai代打!aapoker辅助插件工具(透视)插件下载(总是真的是有挂);1、aapoker辅助插...
透视数据!werplan透视挂... 透视数据!werplan透视挂,wepoker安装教程(确实是有挂);1、进入游戏-大厅左侧-新手福...
透视最新!aapoker辅助器... 透视最新!aapoker辅助器是真的吗(透视)真的假的(一贯有挂)1、游戏颠覆性的策略玩法,独创攻略...
透视有挂!newpoker怎么... 透视有挂!newpoker怎么安装脚本,cloudpoker怎么开挂(总是真的是有挂);1、newp...
透视好友房!aapoker安装... 透视好友房!aapoker安装包怎么使用(透视)脚本(确实存在有挂)1、实时aapoker安装包怎么...
透视实锤!德州圈脚本,poke... 透视实锤!德州圈脚本,pokemmo脚本(本来有挂)1、德州圈脚本系统规律教程、德州圈脚本辅助透视等...
辅助透视!aapoker脚本(... 辅助透视!aapoker脚本(透视)ai插件(其实是有挂)1、玩家可以在aapoker脚本软件透明挂...
透视科技!uupoker有透视... 透视科技!uupoker有透视吗,竞技联盟透视(竟然真的有挂)1、完成uupoker有透视吗透视辅助...
透视透视挂!aapoker插件... 透视透视挂!aapoker插件(透视)ai插件(都是真的是有挂);1、打开软件启动之后找到中间准星的...
透视透视挂!大菠萝手游辅助,p... 透视透视挂!大菠萝手游辅助,pokernow辅助工具(果然有挂)1、很好的工具软件,可以解锁游戏的大...