Angular2 + Jasmine - 无法测试路由器配置

时间:2016-04-26 18:17:26

标签: angular angular2-routing

Angular2 + Jasmine - 无法测试路由器配置

我在为路由器运行jasmine测试时遇到了一个奇怪的问题。 这是一个简单的Angular2应用程序,带有一系列路由配置,用于将请求路由到2个组件。 在我的用于测试路由器的Jasmine测试套件中,当我为'ROUTER_PRIMARY_COMPONENT'提供我的应用程序组件时,它似乎不接受它。 在初始化期间,似乎在测试套件中出现故障。 但我没有在浏览器控制台中看到任何错误。 在应用程序文件中尝试调试断点并没有获取任何线索。 服务器上也没有错误。我正在使用angular v2.0.0-beta.15。 Jasmine测试报告只是忽略[或没有显示]该测试套件。 应用程序在运行时运行良好。问题出在茉莉花测试套件中。 这个应用程序的其他测试套件似乎工作正常。

非常感谢任何调试此问题的想法!

这是我的AppComponent:

@Component({
  selector: 'my-emp', styleUrls: ['app/app.component.css'], template: '<router-outlet></router-outlet>',
  directives: [ROUTER_DIRECTIVES],
  providers: [ROUTER_PROVIDERS,EmpProfServ]
})
@RouteConfig([
  { path: '/employees', name: 'Employees',component: EmpProfCmp,useAsDefault: true},
  { path: '/employees/:id', name: 'EmpProfDetail', component: EmpProfDetailCmp},
  { path: '/**',redirectTo: ['Employees'] }
])
export class AppComponent {}

这是我的route.spec测试文件:

import {describe,it,expect,inject,beforeEach,beforeEachProviders} from 'angular2/testing';
import {Router, Location, ROUTER_PRIMARY_COMPONENT} from 'angular2/router';
import {RouteRegistry} from 'angular2/src/router/route_registry';
import {SpyLocation} from 'angular2/src/mock/location_mock';
import {RootRouter} from 'angular2/src/router/router';
import {provide} from 'angular2/core';
import {AppComponent} from './app.component'

describe('Test Application Routes',()=>{
    beforeEachProviders(() => [
        RouteRegistry,
        provide(Location, {useClass: SpyLocation}),
        provide(Router, {useClass: RootRouter}),
        provide(ROUTER_PRIMARY_COMPONENT, {useValue: AppComponent })
    ]);
    ....
}   

提前致谢。

0 个答案:

没有答案