首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构件角2单元试验

构件角2单元试验
EN

Stack Overflow用户
提问于 2017-05-11 13:30:19
回答 1查看 379关注 0票数 0

我和webpack 2一起使用ng2。

我不知道如何测试组件函数--这里是我的组件

代码语言:javascript
复制
import { Component, OnInit } from '@angular/core';
import { GlobalDataService } from '../global.service';
import { Router } from '@angular/router';
@Component({
    selector: 'login',
    templateUrl: './login.component.html'
})
export class LoginComponent {
    constructor(private gd: GlobalDataService, private router: Router) { }
    login(): void {
        this.gd.shareObj['role'] = 'admin';
        this.router.navigateByUrl('/login');
    }
}

我想测试login()函数,看看这个.gd.shareObj‘see’= ' admin ';是否真的被设置为admin。

.spec.ts文件是什么样子的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-11 13:42:37

我会这样做:

代码语言:javascript
复制
class RouterStub {
  navigateByUrl(url: String) { return url; }
}

class GlobalDataServiceStub {
  shareObj: any = {};
}

describe('LoginComponent', () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      declarations: [LoginComponent],
       providers: [
         { provide: GlobalDataService, useClass: GlobalDataServiceStub },
         { provide: Router, useClass: RouterStub }
       ]
    });

    fixture = TestBed.createComponent(LoginComponent);
    comp = fixture.componentInstance;
  });

  it('should set role to admin',
    inject([GlobalDataService], (gd: GlobalDataService) => {
        comp.login();
        expect(gd.shareObj['role']).toBe('admin');
    })
  );

});

柱塞实例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43916916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档