我在写一个角度部件的单元测试。当我试图运行它时,我收到了以下错误:"Error:由'DynamicTestModule‘模块导入的意外值'DecoratorFactory’,请添加一个@NgModule注释。“我的代码有什么遗漏或错误吗?
import { HttpClient } from '@angular/common/http';
import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { ComponentFixture, TestBed } from "@angular/core/testing";
import { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
import { AlertController, NavController, ToastController } from '@ionic/angular';
import { GlobalProvider } from 'src/app/services/app/global';
import { AccountProvider } from 'src/app/services/profile/account';
import { phoneValidation } from 'src/helpers/custom-validators';
import { AccountDetailsPage } from "./account-details";
describe("AccountDetailsPage", () => {
let component: AccountDetailsPage;
let fixture: ComponentFixture<AccountDetailsPage>;
let accountProvider: AccountProvider;
let formBuilder: FormBuilder;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [AccountDetailsPage],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
providers: [
{ provide: accountProvider, useValue: {} }
],
imports: [
Component,
NavController,
ToastController,
AlertController,
AccountProvider,
GlobalProvider,
FormGroup,
FormBuilder,
Validators,
phoneValidation,
HttpClient
]
}).compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(AccountDetailsPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
describe('method1', () => {
it('should ...', () => {
expect(component).toBeTruthy();
});
});
})
发布于 2022-08-04 13:12:48
这通常发生在imports数组中有提供程序时,反之亦然。从Component中删除imports,如果它是数组,则可能将其移动到declarations中。将NavController, ToastController, AlertController, AccountProvider, FormBuilder, Validators, phoneValidation移出imports数组,并可能将它们移动到providers。
imports =>应该只有模块(@NgModule())
providers =>应该只拥有类似于stuff的服务和服务(@Injectable())
declarations =>只应该有组件、管道和指令(@Component()、@=>()、@Directive())
https://stackoverflow.com/questions/73231632
复制相似问题