【发布时间】:2020-03-31 16:55:09
【问题描述】:
我正在尝试对以下代码进行单元测试:
ngOnInit() {
this.router.events.subscribe((val) => {
if (val instanceof ActivationEnd && val.snapshot) {
this.selectedLanguageCode = val.snapshot.queryParams.lang ? val.snapshot.queryParams.lang : 'en';
this.languageService.setLanguage(this.selectedLanguageCode);
this.langCodeFromUrl = val.snapshot.queryParams.lang;
}
});
this.setupAvailableTranslations();
}
我看过这样的帖子:
Mocking router.events.subscribe() Angular2
和
Angular 6 - how to mock router.events url response in unit test
说,“这很容易,只要做这个或那个......”(即
但本质上,我真正需要做的是让测试路由器返回一个带有快照的虚假 ActivationEnd 事件。花了相当多的时间在谷歌上搜索并尝试了不同的技术,并想知道为什么这似乎是一项不平凡的任务。
【问题讨论】:
-
不要使用测试路由器,提供自己的
useValue;只需{ events: of(event) }。
标签: angular unit-testing