angular - 由于未设置 APP_BASE_HREF,角度 6 中的测试失败
问题描述
我开始在我的 Angular 6 应用程序中使用测试。我遇到了一个错误,虽然我不知道如何解决。
正如您在下面看到的,我的测试抱怨未设置基本 href,但在我的 index.html 中我确实有<base href="/">
Error: No base href set. Please provide a value for the APP_BASE_HREF token or
add a base element to the document.
at new PathLocationStrategy (./node_modules/@angular/common/fesm5/common.js?:498:19)
at provideLocationStrategy (./node_modules/@angular/router/fesm5/router.js?:5302:9)
at _callFactory (./node_modules/@angular/core/fesm5/core.js?:8735:20)
at _createProviderInstance (./node_modules/@angular/core/fesm5/core.js?:8687:26)
at initNgModule (./node_modules/@angular/core/fesm5/core.js?:8617:32)
at new NgModuleRef_ (./node_modules/@angular/core/fesm5/core.js?:9343:9)
at createNgModuleRef (./node_modules/@angular/core/fesm5/core.js?:9332:12)
at Object.debugCreateNgModuleRef [as createNgModuleRef]
(./node_modules/@angular/core/fesm5/core.js?:11157:12)
at NgModuleFactory_.create (./node_modules/@angular/core/fesm5/core.js?:11874:25)
at TestBed._initIfNeeded (./node_modules/@angular/core/fesm5/testing.js?:1015:47)
这是我的item-component.spec.ts
测试
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {ItemComponent} from './item.component';
import {HttpClientTestingModule} from '@angular/common/http/testing';
import {AppRoutingModule} from '../../app-routing.module';
import {HomeComponent} from '../home/home.component';
import {ContactComponent} from '../contact/contact.component';
import {InventoryComponent} from '../inventory/inventory.component';
import {SearchComponent} from '../search/search.component';
import {ApplicationFormComponent} from '../application/application-form.component';
import {SiteShellComponent} from '../site-shell/site-shell.component';
import {MainNavigationComponent} from '../partials/main-navigation/main-navigation.component';
import {FooterComponent} from '../partials/footer/footer.component';
import {ReactiveFormsModule} from '@angular/forms';
import {DebugComponent} from '../debug/debug.component';
import {NewformComponent} from '../debug/under-test/newform.component';
import {MultiSelectComponent} from '../debug/under-test/multi-select.component';
describe('ItemComponent', () => {
let component: ItemComponent;
let fixture: ComponentFixture<ItemComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
ItemComponent,
HomeComponent,
ContactComponent,
InventoryComponent,
SearchComponent,
FinanceApplicationComponent,
SiteShellComponent,
MainNavigationComponent,
FooterComponent,
DebugComponent,
NewformComponent,
MultiSelectComponent,
],
imports: [
HttpClientTestingModule,
AppRoutingModule,
ReactiveFormsModule
],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ItemComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
为什么我的测试看不到基本 href,或者我做错了什么?我真的不知道在这里看什么来解决。我尝试导入 AppComponent,但这没有帮助。
编辑:即使有人无法回答,但至少指出我正确的方向,我仍然坚持这一点。谢谢。
解决方案
将 RouterTestingModule 从 @angular/router/testing 导入到测试平台。那应该可以解决问题。
推荐阅读
- python-3.x - Django - 从变量中导入常量的变量
- outlook - Outlook 图形客户端将类别应用于邮件,但在 UI 中不可见
- c - 更改FREE预处理器定义也将null放入指针
- javascript - JavaScript POO 和 Axios 请求
- python - Python PdfMiner - 如何获取 pdf 中包含的每个单词/句子的方向信息?
- java - Android:目标 SIM/来电数量
- javascript - 在完成所有渲染和 inputEl 渲染之后,哪个方法应该变得更激烈
- performance - 在 GUI 和非 GUI 模式下运行脚本时,JMeter 测试脚本被击中
- kubernetes - 从 pod 中访问副本集信息
- android - Live Data Observer 仅调用一次。再次调用 api 更新 UI 时,它不会从服务器更新数据