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 })
]);
....
}
提前致谢。