【发布时间】:2018-05-30 07:40:27
【问题描述】:
我想测试路由。我试过这个脚本:
describe('Router: App', () => {
let location: Location;
let router: Router;
let fixture;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
AlarmsTableComponent,
AddAlarmsFormComponent,
EditAlarmsFormComponent,
LoginComponent,
DataFilterPipe
],
imports: [RouterTestingModule, DataTableModule, ReactiveFormsModule, FormsModule, HttpClientTestingModule, HttpModule],
providers: [Location, LocationStrategy, AlarmsService, DataFilterPipe, AuthService, ConnectionBackend, HttpModule,
{
provide: APP_BASE_HREF, useValue: '/page' }
]
});
router = TestBed.get(Router);
location = TestBed.get(Location);
fixture = TestBed.createComponent(MainComponent);
router.initialNavigation();
});
it('navigate to "" redirects you to /page', fakeAsync(() => {
router.navigate(['page']);
tick();
expect(location.path()).toBe('/page');
}));
});
当我ng test时结果是这个错误:
TypeError: this._platformStrategy.getBaseHref 不是函数
编辑:
describe('Router: App', () => {
let location: Location;
let router: Router;
let fixture;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
AlarmsTableComponent,
AddAlarmsFormComponent,
EditAlarmsFormComponent,
LoginComponent,
DataFilterPipe
],
imports: [RouterTestingModule, DataTableModule, ReactiveFormsModule, FormsModule, HttpClientTestingModule, HttpModule],
providers: [Location, AuthService, AlarmsService, DataFilterPipe,
{provide: LocationStrategy, useClass: PathLocationStrategy }],
});
router = TestBed.get(Router);
location = TestBed.get(Location);
fixture = TestBed.createComponent(MainComponent);
router.initialNavigation();
});
it('navigate to "" redirects you to /page', fakeAsync(() => {
router.navigate(['page']);
tick();
expect(location.path()).toBe('/page');
}));
});
现在显示这个:
错误:未设置基本 href。请为 APP_BASE_HREF 提供一个值 标记或向文档添加基本元素。
【问题讨论】:
-
你能告诉我们你在哪里初始化
_platformStrategy吗? -
我还没有初始化
标签: angular unit-testing routing jasmine karma-jasmine