首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由模块DecoratorFactory导入的意外值DynamicTestModule。请添加@NgModule注释

由模块DecoratorFactory导入的意外值DynamicTestModule。请添加@NgModule注释
EN

Stack Overflow用户
提问于 2022-08-04 07:05:45
回答 1查看 594关注 0票数 0

我在写一个角度部件的单元测试。当我试图运行它时,我收到了以下错误:"Error:由'DynamicTestModule‘模块导入的意外值'DecoratorFactory’,请添加一个@NgModule注释。“我的代码有什么遗漏或错误吗?

代码语言:javascript
复制
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();
    });
  });
})

EN

回答 1

Stack Overflow用户

发布于 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())

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73231632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档