我使用 jasmine 作为测试框架,使用 karma 作为测试运行程序。我正在尝试创建一个 HttpClient 对象,以便我可以创建一个服务作为该对象的依赖项:
TestBed.configureTestingModule({
declarations: [HttpClient],
imports: [HttpClient],
providers: [HttpClient]
});
TestBed.get(HttpClient);
但我收到以下错误:
错误:模块“DynamicTestModule”导入了意外值“HttpClient”。请添加@NgModule注释。
有谁知道如何解决这个问题?
遵循所有代码:
import { I18nService } from "../../services/i18n.service";
import { TestBed, inject, async } from "@angular/core/testing";
import { EditionHistoryEventsModel } from "./dropdown.edition.history.events.model";
import { HttpClient } from "@angular/common/http";
import { TestUtil } from "../../utils/test.uti";
describe('DropDownEditionHistoryItemModel', () => {
let i18nService: I18nService;
beforeAll(() => {
TestBed.configureTestingModule({
declarations: [HttpClient],
imports: [HttpClient],
providers: [HttpClient]
});
i18nService = TestUtil.geti18nService(TestBed.get(HttpClient));
});
it('asdasd', () => {
let model: EditionHistoryEventsModel = new EditionHistoryEventsModel(i18nService);
expect(true).toBeTruthy();
});
});
当您尝试在文件中包含组件、指令或管道以外的内容时,会引发编译错误。declarations
array.
我重构了您的测试规范以删除HttpClient
从声明模块中导入HttpClientTestingModule
因为它比其他产品有一些显着的优势HttpClientModule
for testing https://medium.com/netscape/testing-with-the-angular-httpclient-api-648203820712,并使用稍微不同的模式来创建您的实例I18nService
传递给你的模型类。
import { HttpClientTestingModule } from '@angular/common/http/testing';
describe('TestSpec', () => {
let intlService = I18nService;
beforeAll(() => {
TestBed.configureTestingModule({
declarations: [],
imports: [HttpClientTestingModule],
providers: [I18nService]
});
i18nService = TestBed.Get(I18nService);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)