【发布时间】: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 } ]