angular - 角度单元测试 NullInjectorError: R3InjectorError(DynamicTestModule)[MatSnackBarComponent -> MatSnackBarComponent]:
问题描述
在我的 MainComponent 中,我有 entryComponent MatSnackBarComponent(自定义组件)。当我写测试我得到这个错误:
NullInjectorError: R3InjectorError(DynamicTestModule)[MatSnackBarComponent -> MatSnackBarComponent]: NullInjectorError: MatSnackBarComponent 没有提供者!
describe('MainComponent', () => {
let component: MainComponent;
let fixture: ComponentFixture<MainComponent>;
let orderService: OrderService;
const fakeMatDialogRef = jasmine.createSpyObj(['close']);
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
HttpClientTestingModule,
TranslateModule.forRoot()
],
declarations: [MainComponent],
providers: [
OrderService,
{ provide: MatDialogRef, useValue: fakeMatDialogRef },
{ provide: MAT_DIALOG_DATA, useValue: {} }
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MainComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
我应该怎么做才能解决这个问题?
解决方案
解决了。需要将以下代码添加到提供程序
{ provide: MatSnackBarComponent, useValue: {} }
推荐阅读
- java - 如何在无网络模式下将自定义命令行传递给 locust
- .net - 使用 codefirst 连接并创建数据库,错误 26
- rest - OWASP 保护 restapi 免受点击劫持的安全指南,它们准确吗?
- javascript - 如何解决 JavaScript 中的堆栈问题?
- kotlin - 智能投不投String?!value.isNullOrBlank() 之后的字符串
- android - 为什么我在 StringReader read() 中得到 IndexOutOfBoundsException?
- http - 与本地主机上的内部反向代理的内部 ServiceFabric 通信
- virtocommerce - 来自 Github 的 virto 商务部署
- html - CSS:强制无线电输入检查
- javascript - 在 Angular JS 中过滤我的 JavaScript 中的未定义