我正试图用茉莉花业力来
ng test
对Angular Materials的所有问题感到惊讶。我看到几个月前它被称为md-icon
而不是mat-icon
等的OLDER版材料的例子......
因此,这不能解决抛出的错误
MaterialModule.forRoot()
错误
mat-icon不是已知的元素角度材质
我遇到了测试材料组件的相同问题。
感谢k.vincent在评论中为我提供了正确的答案。
对于使用Material的组件,请确保* .spec文件与此类似:
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
...
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MyComponent ],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
.compileComponents();
}));
我的测试也失败了,无法绑定到'formGroup',因为它不是'form'的已知属性;如果'app-forgot-password'是一个Angular组件,那么请验证它是否是该模块的一部分;如果'mat-card'是一个Angular组件,那么请验证它是否是该模块的一部分。在spec文件中,我添加了ReactiveFormsModule和CUSTOM_ELEMENTS_SCHEMA的导入,并且它有效。
import { ReactiveFormsModule } from '@angular/forms';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ForgotPasswordComponent ],
imports: [ReactiveFormsModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
.compileComponents();
}));
然后我有另一个错误:无法绑定到'routerLink',因为它不是'a'的已知属性。我可以通过在spec文件中添加RouterTestingModule来修复它:
import {RouterTestingModule} from '@angular/router/testing';
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
FormsModule,
ReactiveFormsModule,
BrowserAnimationsModule,
MaterialModule,
RouterTestingModule
],
declarations: [ LoginFormComponent ]
})
.compileComponents();
}));