Angular2从测试中使用Router实例

时间:2016-06-14 09:53:48

标签: testing angular karma-jasmine router

我正在尝试为Angular2组件开发一些Jasmine测试。该组件在构造函数,服务和路由器中接收两个参数。

import {Component , OnInit} from '@angular/core';
import {Router} from '@angular/router-deprecated';
import { HeroService } from './hero.service';

@Component({
  ...
})

export class HeroesComponent implements OnInit {
  ...
  constructor(
      private heroService: HeroService ,
      private router: Router
  ) { }
  ...
}

我想编写一个测试来检查这个组件是否定义良好,但我怀疑如何在测试中实现组件传递两个参数,第一个(HeroService)很简单,只需使用一个新的,但是, ¿我怎样才能传递第二个参数(路由器)?我正在尝试使用新的,但我不知道如何将RouteRegistry作为Route构造函数的第一个参数传递。有没有其他方法可以做到这一点?

import { Router }         from '@angular/router-deprecated';
import { HeroService } from './hero.service';
...
describe('HeroesComponent with new', function () {
  it('should instantiate component', () => {
    expect(new HeroesComponent(new HeroService() , new Router())).toBeDefined('Done!');
  });
});

这引发了这个错误:

app/heroes.component.spec.ts(30,52): error TS2346: Supplied parameters do not match any signature of call target.

提前致谢

0 个答案:

没有答案