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

相关内容

热门资讯

据了解!微乐小程序免费黑科技,... 据了解!微乐小程序免费黑科技,微信小程序微乐辅助器破解版(透视)都是真的有辅助脚本(哔哩哔哩)一、可...
透视窍要!wepoker私人局... 透视窍要!wepoker私人局俱乐部怎么进(德普之星下载)好像是有辅助攻略(哔哩哔哩)1、完成wep...
更值得关注的是!微乐小程序黑科... 更值得关注的是!微乐小程序黑科技免费,微信小程序微乐辅助器app(透视)好像有辅助app(哔哩哔哩)...
透视机巧!hhpoker作必弊... 透视机巧!hhpoker作必弊码(AApoker透视)一贯是真的有辅助脚本(哔哩哔哩)该软件可以轻松...
此事备受玩家关注!微乐小程序黑... 此事备受玩家关注!微乐小程序黑科技免费,微信小程序微乐辅助器ios(透视)一贯存在有辅助教程(哔哩哔...
透视窍门!德州局脚本(德普之星... 透视窍门!德州局脚本(德普之星辅助软件)本来有辅助app(哔哩哔哩)1、德普之星辅助软件破解器简单,...
黑科技插件!微乐小程序免费黑科... 黑科技插件!微乐小程序免费黑科技,微信小程序微乐辅助器脚本(透视)总是是有辅助插件(哔哩哔哩)所有人...
透视绝活儿!wpk俱乐部有没有... 透视绝活儿!wpk俱乐部有没有辅助(WePoKer软件)真是有辅助工具(哔哩哔哩)1、wpk俱乐部有...
透视好友房!微乐小程序黑科技,... 透视好友房!微乐小程序黑科技,微乐智能插件激活码(透视)本来是真的辅助技巧(哔哩哔哩)暗藏猫腻,小编...
透视方针!hhpoker脚本(... 透视方针!hhpoker脚本(WePoKer脚本)真是真的是有辅助方法(哔哩哔哩)该软件可以轻松地帮...