Angular2 アプリを Release Candidate 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.1」に問題があると思いますが、間違っている可能性があります。したがって、私のテストは次のようになります...(私が何をしているのかを理解するために、これを減らしてみました)。
@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」および「@ngrx/router」: 「^1.0.0-beta.1」を使用しています。前もって感謝します。
**** アップデート ****
addProviders([])
確かではありませんが、IDE に「addProviders のシンボルを解決できません」というエラーが表示されるため、問題は から発生していると思いますが、それはノード モジュールにあり、正しくインポートしています!
import {
it,
describe,
xdescribe,
beforeEach,
addProviders,
async,
inject
} from '@angular/core/testing';