typescript DynamicTestModule在Angular 单元测试时抛出错误

c3frrgcw  于 2023-01-21  发布在  TypeScript
关注(0)|答案(1)|浏览(180)

我目前正在使用Karma和Jasmine创建一个单元测试:

describe('ProfileListComponent', () =>  {
let component: ProfileListComponent;

beforeEach(async(() => {
    TestBed.configureTestingModule({
        imports: [
            [RouterModule.forRoot([])],
            FormsModule
        ],
        declarations: [
            ProfileListComponent,
            ProfilesFiltersComponent,
            DatatableComponent,
            ProfileImagePopoverComponent,
            NgbHighlight,
            NgbRating,
            PaginationFooterComponent
        ],
        providers: []
    }).compileComponents();

    TestBed.configureTestingModule({
        declarations: [ ProfileListComponent ]
    })
    .createComponent(ProfileListComponent);
}));

it('should be 4', async(() => {
    expect(component.add(2,2)).toEqual(4);
}))

});

配置文件列表组件有很多子项,这就是为什么我在declarations上导入它们的原因。ProfilesFiltersComponent使用角形式:

    • 超文本标记语言:**
    • 技术支助**
export class ProfilesFiltersComponent implements OnInit {
 filterForm: FormGroup;
}

因此,测试要求我的表单组为:
无法绑定到"formGroup",因为它不是"form"的已知属性
因此,我在测试中将其添加到declarations中:

declarations: [
    ...
    FormGroup
    ]

但现在它抛出了一个新的错误:
失败:模块"DynamicTestModule"声明了意外值"FormGroup"。请添加@Pipe/@Directive/@Component注解。
我不知道该怎么解决;我做错了什么?

muk1a3rh

muk1a3rh1#

declarations中删除FormGroup
尝试将导入更改为:

imports: [
            RouterTestingModule,
            // You either need FormsModule or ReactiveFormsModule
            FormsModule,
            ReactiveFormsModule
        ],

相关问题