【发布时间】:2016-08-08 12:41:44
【问题描述】:
我试图模拟'Tour of Heroes' Angular 2 Tutorial 的英雄组件。但我不知道如何模拟路由器,这是实例化 HeroesComponent 所必需的。我尝试使用 Jasmine 创建一个 Spy,但这不起作用,因为它缺少属性“RootComponentType”。
我怎样才能做到这一点?
import {HeroesComponent} from "./heroes.component";
import {Router} from "@angular/router-deprecated";
import {HeroService} from "./hero.service";
describe('HeroesComponent', () => {
let heroes:HeroesComponent;
let router:Router;
let service:HeroService;
beforeEach(() => {
router = jasmine.createSpyObj('Router', ['navigate']);
service = new HeroService(/* I will care about this later */);
heroes = new HeroesComponent(router, service);
});
it('should be defined', () => {
expect(heroes).toBeDefined();
});
});
它正在工作:
describe('HeroesComponent', () => {
let router:any;
let heroesComponent:HeroesComponent;
let service:HeroService;
beforeEach(() => {
router = new class {
navigate = jasmine.createSpy("navigate");
};
heroesComponent = new HeroesComponent(router, service);
});
it('should be defined', () => {
expect(heroesComponent).toBeDefined();
});
});
【问题讨论】:
标签: angularjs unit-testing testing angular