angular - Angular 7 测试用例抛出广播错误
问题描述
在运行测试用例时会引发此错误。几乎添加了所有必需的组件和服务以及其他依赖项,尽管它在 Angular & 中运行测试用例时抛出错误
Error: StaticInjectorError(DynamicTestModule)[Broadcaster]:
StaticInjectorError(Platform: core)[Broadcaster]:
NullInjectorError: No provider for Broadcaster!
这是规范文件代码
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {HttpClientModule} from '@angular/common/http';
import {RouterModule, Routes} from '@angular/router';
import { FormsModule } from '@angular/forms';
import {APP_BASE_HREF} from '@angular/common';
import {CustomiseMenuComponent} from './customise-menu.component';
describe('CustomiseMenuComponent', () => {
let component: CustomiseMenuComponent;
let fixture: ComponentFixture<CustomiseMenuComponent>;
const appRoutes: Routes = [
{path: 'designs', component: CustomiseMenuComponent}
];
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
CustomiseMenuComponent,
],
imports: [
FormsModule,
HttpClientModule,
RouterModule.forRoot(appRoutes)
],
providers: [
{provide: APP_BASE_HREF, useValue : '/' }
]
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(CustomiseMenuComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
解决方案
这可能是关键短语:“ No provider for Broadcaster! ”。我想,您应该将 Broadcaster 添加到“AppModule”文件中的“providers”数组中。
@NgModule({
declarations: [
...
],
imports: [
...
],
providers: [
...
Broadcaster,
...
],
bootstrap: [
AppComponent
]
更新:如果您正在使用此服务,也许您可以在此处查看文档: https ://github.com/ranbuch/ng-broadcaster
推荐阅读
- python - 如何在不安装的情况下使用python库
- mongodb - 得到!错误 [ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头 | 表达
- azure - 尝试使用 Microsoft 帐户登录时获取“unauthorized_client”
- angular - 如何在Angular中的每次路由更改上强制状态为200
- javascript - 使用javascript搜索多维数组
- typescript - 禁止 Typescript 中未使用的选项对象属性
- html - discord.py BS4 从 html 获取复制到剪贴板信息
- elasticsearch - 弹性搜索。如何在不按过滤器计算所有文档的情况下获取一份文档?
- javascript - JS 在 Excel 中 # 后构建 CSV 中断
- appcelerator - 如何快速访问 KrollCallback?