简体   繁体   English

在Angular 2的构造函数中注入了Router的故障单元测试服务

[英]Trouble unit testing service with the Router injected in the constructor in Angular 2

I'm trying to test a service that has the application router injected in its constructor. 我正在尝试测试在其构造函数中注入应用程序路由器的服务。 Following Julie Ralph's suggestions presented in AngularConnect conf 2015 (and her repository: https://github.com/juliemr/ng2-test-seed ), I'm using Karma and Jasmine. 继Julie Ralph在AngularConnect conf 2015(以及她的存储库: https//github.com/juliemr/ng2-test-seed )中提出的建议后,我正在使用Karma和Jasmine。

It follows the example service to be tested: 它遵循要测试的示例服务:

import { Router } from 'angular2/router';

export class ExampleService {
  constructor(router : Router) {
    this._router = router;
  }

  //...
}

Right now, I'm just asserting the truth. 现在,我只是断言真相。 It follows the service test: 它遵循服务测试:

import { it, describe, expect, inject, beforeEachProviders, MockApplicationRef } from 'angular2/testing';
import { ROUTER_PROVIDERS } from 'angular2/router';
import { provide, ApplicationRef } from 'angular2/core';

import { ExampleService } from 'example-service.js';

describe('ExampleService', () => {
  beforeEachProviders(() => [
    ROUTER_PROVIDERS, ExampleService,
    provide(ApplicationRef, { useClass: MockApplicationRef })
  ]);

  it('should validate the truth', inject([ExampleService], (exService) => {
    expect(true).toBeTruthy();
  }));
});

when I run the tests ( > karma start karma.config.js ), I get a TypeError: Cannot read property 'length' of null 当我运行测试(> karma start karma.config.js)时,我得到一个TypeError:无法读取属性'length'的null

Looking at the router.js source code, it looks like I should bootstrap at least one component before injecting router. 查看router.js源代码,看起来我应该在注入路由器之前引导至少一个组件。 Is there an easy way to inject the Router dependency in a test? 有没有一种简单的方法可以在测试中注入路由器依赖项?

The Stacktrace: Stacktrace:

ORIGINAL EXCEPTION: TypeError: Cannot read property 'length' of null ORIGINAL STACKTRACE: TypeError: Cannot read property 'length' of null at routerPrimaryComponentFactory (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/router.js:2963:27) at Injector._instantiate (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11920:19) at Injector._instantiateProvider (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11859:21) at Injector._new (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11849:19) at InjectorDynamicStrategy.getObjByKeyId (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11733:42) at Injector._getByKeyDefault (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12048:33) at Injector._getByKey (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12002:21) at Injector._getByDe 原始异常:TypeError:无法读取null的属性'length'ORIGINAL STACKTRACE:TypeError:无法在routerPrimaryComponentFactory读取null的属性'length'(C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / angular2 / bundles / router.js:2963:27)Injector._instantiate(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11920:19)Injector._instantiateProvider(C:/用户/ LSANTOS / Desktop / ng2-test-seed / node_modules / angular2 / bundles / angular2.js:11859:21)Injector._new(C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / angular2 /在Injector._getByKeyDefault(C)的InjectorDynamicStrategy.getObjByKeyId(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11733:42)中的bundles / angular2.js:11849:19) :/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12048:33)Injector._getByKey(C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules /在Injector._getByDe中的angular2 / bundles / angular2.js:12002:21) pendency (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11990:21) at Injector._instantiate (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11887:32) at Injector._instantiateProvider (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11859:21) at Injector._new (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11849:19) at InjectorDynamicStrategy.getObjByKeyId (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11733:42) at Injector._getByKeyDefault (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12048:33) at Injector._getByKey (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12002:21) at Injector._getByDependency (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11990:21) at Injector._instantiate (C:/Users/LSANTOS/Desktop/ng2-test Injector._instantiate(C:/ Users / LSANTOS / Desktop / ng2-test-seed)的未决(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11990:21) /node_modules/angular2/bundles/angular2.js:11887:32)在Injector._instantiateProvider(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11859:21)at at Injector._new(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11849:19)InjectorDynamicStrategy.getObjByKeyId(C:/ Users / LSANTOS / Desktop / ng2-test) -seed / node_modules / angular2 / bundles / angular2.js:11733:42)Injector._getByKeyDefault(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12048:33 )Injector._getByDependency(C:/ Users / LSANTOS / Desktop / ng2)中的Injector._getByKey(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12002:21) Injector._instantiate中的-test-seed / node_modules / angular2 / bundles / angular2.js:11990:21)(C:/ Users / LSANTOS / Desktop / ng2-test -seed/node_modules/angular2/bundles/angular2.js:11887:32) at Injector._instantiateProvider (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11859:21) at Injector._new (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11849:19) at InjectorDynamicStrategy.getObjByKeyId (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11733:42) at Injector._getByKeyDefault (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12048:33) at Injector._getByKey (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12002:21) at Injector._getByDependency (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11990:21) at Injector._instantiate (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11887:32) at Injector._instantiateProvider (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles -seed / node_modules / angular2 / bundles / angular2.js:11887:32)Injector._instantiateProvider(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11859:21 )Injector._new(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11849:19)InjectorDynamicStrategy.getObjByKeyId(C:/ Users / LSANTOS / Desktop / ng2) -test-seed / node_modules / angular2 / bundles / angular2.js:11733:42)Injector._getByKeyDefault(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12048 :33)在Injector._getByDependency(C:/ Users / LSANTOS / Desktop)的Injector._getByKey(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12002:21) Injector._instantiate中的/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11990:21)(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js :11887:32)Injector._instantiateProvider(C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / angular2 / bundles) /angular2.js:11859:21) at Injector._new (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11849:19) at InjectorDynamicStrategy.getObjByKeyId (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11733:42) at Injector._getByKeyDefault (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12048:33) at Injector._getByKey (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12002:21) at Injector.get (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11804:19) at C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/testing.dev.js:2477:25 at Array.map (native) at Array.map (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/es6-shim/es6-shim.js:1113:14) at FunctionWithParamTokens.execute (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/testing.dev.js:2476:33) at C:/Users/LSANTOS/Desktop/ng2-test-seed/node_mod /angular2.js:11859:21)在Injector._new(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11849:19)InjectorDynamicStrategy.getObjByKeyId(C: /Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11733:42)Injector._getByKeyDefault(C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / angular2) /bundles/angular2.js:12048:33)Injector.get中的Injector._getByKey(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:12002:21) C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2.js:11804:19)在C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / angular2 / bundles位于Array.map的Array.map(native)的/testing.dev.js:2477:25(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/es6-shim/es6-shim.js:1113 :14)在C:/ Users / LSANTOS / Desktop / ng2的FunctionWithParamTokens.execute(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/testing.dev.js:2476:33) -test种子/ node_mod ules/angular2/bundles/testing.dev.js:2601:25 at Zone.run (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2-polyfills.js:138:17) at Zone.run (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/testing.dev.js:2544:30) at runInTestZone (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/testing.dev.js:2588:23) at Object. 在Zone.run上的ules / angular2 / bundles / testing.dev.js:2601:25(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/angular2-polyfills.js:138:17 )在runInTestZone上的Zone.run(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/testing.dev.js:2544:30)(C:/ Users / LSANTOS / Desktop / ng2) -test-seed / node_modules / angular2 / bundles / testing.dev.js:2588:23)at Object。 (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/testing.dev.js:2600:33) at attemptAsync (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1819:24) at QueueRunner.run (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1774:9) at QueueRunner.execute (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1762:10) at Spec.Env.queueRunnerFactory (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:627:35) at Spec.execute (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:353:10) at Object.fn (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:2360:37) at attemptAsync (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1819:24) at QueueRunner.run (C:/Users/LSANTOS/Desktop/ng2-test- (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/angular2/bundles/testing.dev.js:2600:33)在attemptAsync(C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / jasmine -core / lib / jasmine-core / jasmine.js:1819:24)在QueueRunner.run(C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / jasmine-core / lib / jasmine- core / jasmine.js:1774:9)在QueueRunner.execute(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1762:10)在Spec.exeEnv.queueRunnerFactory(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:627:35)在Spec.execute(C:/在Object.fn上的用户/ LSANTOS / Desktop / ng2-test-seed / node_modules / jasmine -core / lib / jasmine-core / jasmine.js:353:10)(C:/ Users / LSANTOS / Desktop / ng2-test- seed / node_modules / jasmine -core / lib / jasmine-core / jasmine.js:2360:37)在attemptAsync(C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / jasmine-core / lib / jasmine- core / jasmine.js:1819:24)在QueueRunner.run(C:/ Users / LSANTOS / Desktop / ng2-test- seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1774:9) at QueueRunner.execute (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1762:10) at Env.queueRunnerFactory (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:627:35) at Object.fn (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:2345:13) at attemptAsync (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1819:24) at QueueRunner.run (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1774:9) at C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1801:16 at C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1745:9 at queueRunnerFactory.onComplete (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/ seed / node_modules / jasmine -core / lib / jasmine-core / jasmine.js:1774:9)在QueueRunner.execute(C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / jasmine-core / lib / jasmine-core / jasmine.js:1762:10)在Env.queueRunnerFactory(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:627: 35)atatject.fn(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:2345:13)在attemptAsync(C:/ Users /)在QueueRunner.run的LSANTOS / Desktop / ng2-test-seed / node_modules / jasmine-core / lib / jasmine-core / jasmine.js:1819:24)(C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / jasmine-core / lib / jasmine-core / jasmine.js:1774:9)在C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / jasmine-core / lib / jasmine-core / jasmine。 js:1801:16 at C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1745:9 at queueRunnerFactory.onComplete(C:/ Users / LSANTOS /桌面/ NG2测试种子/ node_modules /茉莉核/ LIB /茉莉核/ jasmine.js:2348:17) at QueueRunner.clearStack (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:605:9) at QueueRunner.run (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1784:12) at C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1801:16 at C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1745:9 at complete (C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:365:9) jasmine.js:2348:17)在QueueRunner的QueueRunner.clearStack(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:605:9) .run(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1784:12)在C:/ Users / LSANTOS / Desktop / ng2- test-seed / node_modules / jasmine-core / lib / jasmine-core / jasmine.js:1801:16在C:/ Users / LSANTOS / Desktop / ng2-test-seed / node_modules / jasmine-core / lib / jasmine-core /jasmine.js:1745:9完成后(C:/Users/LSANTOS/Desktop/ng2-test-seed/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:365:9)

See also https://github.com/angular/angular/issues/6325 另见https://github.com/angular/angular/issues/6325

Problem solved, just need to provide the ROUTER_PRIMARY_COMPONENT. 问题解决了,只需要提供ROUTER_PRIMARY_COMPONENT。

import {ROUTER_PRIMARY_COMPONENT} from 'angular2/router';

class MockPrimaryComponent {
}

beforeEachProviders(() => [
  ROUTER_PROVIDERS,
  provide(ROUTER_PRIMARY_COMPONENT, {useClass: MockPrimaryComponent}),
  ExampleService,
  provide(ApplicationRef, { useClass: MockApplicationRef })
]);

I know this post is related to the old router, but I thought it might be useful to answer this. 我知道这篇文章与旧路由器有关,但我认为回答这个问题可能会有用。 Using angular version rc.1 with the new router, I got unit tests with the router, including testing navigateByUrl, by using this test within angular as inspiration: https://github.com/angular/angular/blob/master/modules/%40angular/router/test/integration_spec.ts 使用角度版本rc.1和新路由器,我使用路由器进行单元测试,包括测试navigateByUrl,在angular中使用此测试作为灵感: https//github.com/angular/angular/blob/master/modules/ %40angular /路由器/测试/ integration_spec.ts

saved me a lot of hastle 救了我很多东西

Here's a working example 这是一个有效的例子

import {setBaseTestProviders,beforeEachProviders,inject,it,describe,expect,beforeEach} from '@angular/core/testing'

import { Component,provide} from '@angular/core';
import {Routes,ROUTER_DIRECTIVES,Route} from "@angular/router";

import {ComponentResolver} from '@angular/core';
import {Router,RouterOutletMap,RouteSegment,RouterUrlSerializer,DefaultRouterUrlSerializer} from '@angular/router';
import {SpyLocation} from '@angular/common/testing';
import {Location} from '@angular/common';
import {ComponentFixture, TestComponentBuilder} from '@angular/compiler/testing';

import {TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS} from '@angular/platform-browser-dynamic/testing';



@Component({
  selector: 'some-component',
  template: `Blah!`,
  directives: [ROUTER_DIRECTIVES]
})
export class SomeComponent {
}

@Component({
  selector: 'another-component',
  template: `Blah!`,
  directives: [ROUTER_DIRECTIVES]
})
export class AnotherComponent {
}

@Component({
  selector: 'root-cmp',
  template: `<router-outlet></router-outlet>`,
  directives: [ROUTER_DIRECTIVES]
})
@Routes([
    new Route({path: '/some-path',component:SomeComponent}),
    new Route({path: '/another-path',component:AnotherComponent})
    ])
export class RootCmp {
}

export const PROVIDERS_TESTING = [
    provide(RouterUrlSerializer, {useClass: DefaultRouterUrlSerializer}),
    RouterOutletMap,
    provide(Location, {useClass: SpyLocation}),
    provide(RouteSegment, {useFactory: (r) => r.routeTree.root, deps: [Router]}),
    provide(Router,{
        useFactory: (resolver, urlParser, outletMap, location) => new Router(
            "RootComponent", RootCmp, resolver, urlParser, outletMap, location),
            deps: [ComponentResolver, RouterUrlSerializer, RouterOutletMap, Location]
        }
    ),    
]

setBaseTestProviders(TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,[TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS,PROVIDERS_TESTING]);

it('some test',inject([Router, TestComponentBuilder, Location], (router:Router, tcb:TestComponentBuilder, location:Location) => {
    return new Promise((resolve,reject)=>{
        tcb.createAsync(RootCmp).then(fixture=>{                                
            router.navigateByUrl('/some-path').then(()=>{
                expect(location.path()).toEqual('/some-path');
                resolve()   
            })
        })
    })
}))

it('another test',inject([Router, TestComponentBuilder, Location], (router:Router, tcb:TestComponentBuilder, location:Location) => {
    return new Promise((resolve,reject)=>{
        tcb.createAsync(RootCmp).then(fixture=>{                                
            router.navigateByUrl('/another-path').then(()=>{
                expect(location.path()).toEqual('/another-path');
                resolve()   
            })
        })
    })
}))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM