【发布时间】:2017-07-28 02:50:37
【问题描述】:
我正在处理Angular2 testing guide 并希望为ngOnInit() 函数编写一个测试。来自Routing section of the programming guide 的格式如下:
let org: Org = null;
ngOnInit(): void {
let that = this;
this.route.data
.subscribe((data: { org: Org }) => {
that.org = data.org;
});
}
这是通过解析器实现的,例如:
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Org> {
let id = this.authService.user.orgId;
return this.orgService
.getOrg(id)
.map(
(org: Org) : Org => {
if(org) {
return org;
} else {
// If the Org isn't available then the edit page isn't appropriate.
this.router.navigate(['/provider/home']);
return null;
}
})
.first();
}
代码工作正常,但我不确定如何为ngOnInit 编写测试。我可用的示例假设嵌入的OrgService 可以替换为MockOrgService。但是,我只有一个解析器。
我最终会弄清楚如何自行测试解析器。我可以使用基于解析器的ngOnInit 进行任何有用的测试吗?
【问题讨论】:
-
我认为测试 ngOnInit 应该是 Angular 团队的责任,你应该只需要测试你从中调用的方法
-
嗨。你是如何单独对 Resolve 类进行单元测试的?我正在寻找这样做,只是想知道您的解决方案是什么
标签: javascript angular jasmine karma-runner resolver