Angular2 rc.升级打破测试-平台策略.getBaseHref不是一个函数



我把我的Angular2应用升级到候选版本4,从那以后我不得不重新设计我的一些测试,因为新的候选版本引入或贬值了一些项目。然而,我的大量测试现在失败了,我不知道为什么,但我被以下错误所困扰,我不确定为什么,这必须发生在我的测试的50%

[2]     Error: EXCEPTION: Error during instantiation of Router! (BreadcrumbComponent -> Router).
[2]     ORIGINAL EXCEPTION: TypeError: platformStrategy.getBaseHref is not a function

所以,我假设有什么是错误的,或者有一个问题与"@ngrx/router":"^1.0.0-beta。"但我可能错了。我的测试结果是这样的…(我试着减少它,只是为了让大家知道我在做什么)。

@Component({
    selector: 'my-test',
    template: '<my-breadcrumb></my-breadcrumb>',
    directives: [NavigationComponent]
})
class NavigationComponentSelectorTestComponent {}
@Component({
    selector: 'my-dummy',
    template: 'dummy'
})
class DummyComponent {}
const routes: DisplayRoutes = [
    {
        path: '/',
        display: 'Home',
        component: DummyComponent
    }, {
        path: '/path1',
        display: 'Path1',
        component: DummyComponent
    }, {
        path: '/path2',
        display: 'Path2',
        component: DummyComponent,
        index: {
            component: DummyComponent
        },
        children: [
            {
                path: '/:id',
                component: DummyComponent
            }
        ]
    }
];
class MockContentService {
    public getContentMock: SinonStub = stub();
    getContent(key: string):Observable<Card[]> {
        return this.getContentMock(key);
    }
}
// actual tests...
describe('Component: NavigationComponent', () => {
    beforeEach(() => addProviders([
        provideRouter(routes, SpyLocation),
        NavigationComponent,
        {provide: APP_BASE_HREF, useValue : '/' },
        {provide: ContentService, useClass: MockContentService}
    ]));
    it('should provide injectable component', inject([NavigationComponent], (component: NavigationComponent) => {
        assertThat(component, is(defined()));
    }));
});

升级前一切正常。有人在platformStrategy.getBaseHref is not a function上有类似的问题吗?我再次使用Angular2 rc4,"karma-jasmine":"^1.0.2"one_answers"@ngrx/router":"^1.0.0-beta.1"。提前谢谢。

**** UPDATE ****

我不能确定,但我认为问题来自addProviders([]),因为我在IDE中有错误-"无法解析addProviders符号",但它在我的节点模块中,我正在正确导入它!

import {
    it,
    describe,
    xdescribe,
    beforeEach,
    addProviders,
    async,
    inject
} from '@angular/core/testing';

我也有这个问题。虽然它可能不会解决你的问题,它可能有助于知道,对我来说,只要我不注入'位置',错误不会发生。但这显然只是一个临时的工作。

相关内容

  • 没有找到相关文章

最新更新