加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular2,测试和解析数据:如何测试ngOnINit?

发布时间:2020-12-17 07:24:01 所属栏目:安全 来源:网络整理
导读:我正在研究 Angular2 testing guide,并希望为ngOnInit()函数编写一个测试.编程指南的Routing部分中的那个具有以下格式: let org: Org = null;ngOnInit(): void { let that = this; this.route.data .subscribe((data: { org: Org }) = { that.org = data.or
我正在研究 Angular2 testing guide,并希望为ngOnInit()函数编写一个测试.编程指南的Routing部分中的那个具有以下格式:
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方法?它所做的就是在解析路径数据时分配组织的值.这就是你真正需要测试的全部内容.
let routeStub;

beforeEach(() => {
  routeStub = {
    data: null
  }

  TestBed.configureTestingModule({
    providers: [
      { provide: ActivatedRoute,useValue: routeStub }  
    ]
  })
})

it('should assign org when route is resolved',async(() => {
  let org = new Org()
  route.data = Observable.of(org)

  fixture.detectChanges();
  fixture.whenStable().then(() => {
    expect(component.org).toEqual(org)
  })
}))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读