【问题标题】:Angular 9: NULLINJECTORERROR: NO PROVIDER FOR NGXSMARTMODALSERVICEAngular 9:NULLINJECTORERROR:没有 NGXSMARTMODALSERVICE 的提供者
【发布时间】:2023-03-10 16:30:02
【问题描述】:

我在这里附上了我的规范文件。

actionService.spec.ts

import { TestBed } from '@angular/core/testing';
import { NgxSmartModalService } from 'ngx-smart-modal';
import { ActionService } from './action.service';

describe('ActionService', () => {
    let service: ActionService;

    beforeEach(() => {    
    TestBed.configureTestingModule({
        providers: [NgxSmartModalService]
    });
    service = TestBed.inject(ActionService);
    });

    it('should be created', () => {
    expect(service).toBeTruthy();
    });
});

MultiNumberComponent.spec.ts

import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ActionService } from '../services/action/action.service';
import { MultiNumberComponent } from './multi-number.component';
import { MatDialogModule } from '@angular/material/dialog';
import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing';
import { HttpClient } from 'selenium-webdriver/http';
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { CircleProgressComponent } from './../circle-progress/circle-progress.component';
import { PieChartComponent } from './../pie-chart/pie-chart.component';
    
describe('MultiNumberComponent', () => {
    let component: MultiNumberComponent;
    let fixture: ComponentFixture<MultiNumberComponent>;

    beforeEach(async(() => {
    TestBed.configureTestingModule({
        imports: [MatDialogModule, HttpClientTestingModule],
        declarations: [ MultiNumberComponent, PieChartComponent, CircleProgressComponent],
        providers: [ ActionService ],
        schemas: [NO_ERRORS_SCHEMA]
    }).compileComponents().then( result => {
    fixture = TestBed.createComponent(MultiNumberComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
    })
    }));
    
    it('should create', () => {
    expect(component).toBeTruthy();
    });
    
});

当我执行“npm run test”时,出现以下错误。

1 SPEC,1 FAILURE,随机排列的种子 66295SPEC 列表 |失败 多数字组件 > 应该创建 失败:未捕获(承诺中):NULLINJECTORERROR:R3INJECTORERROR(DYNAMICTESTMODULE)[ACTIONSERVICE -> NGXSMARTMODALSERVICE -> NGXSMARTMODALSERVICE]:NULLINJECTORERROR:没有 NGXSMARTMODALSERVICE 的提供者!

谁能帮忙解决这个错误?

【问题讨论】:

  • 你在写单元测试对吧?为什么首先要在组件测试中提供实际服务?您需要模拟它并将其添加到提供程序数组中。 providers: [ { provide: ActionService, useValue: mockActionService } ]

标签: karma-jasmine angular9


【解决方案1】:

尝试在您的规范文件的导入中添加NgxSmartModalModule,例如:

imports: [MatDialogModule, HttpClientTestingModule, NgxSmartModalModule]

【讨论】:

    猜你喜欢
    • 2020-06-04
    • 2020-06-26
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 2019-11-16
    • 2021-01-20
    • 2019-06-25
    相关资源
    最近更新 更多