Angular 5使用材料,jasmine karma测试失败,带有mat-icon

Sco*_*ary 11 karma-jasmine angular-material angular-material2 angular

我正试图用茉莉花业力来

ng test
Run Code Online (Sandbox Code Playgroud)

对Angular Materials的所有问题感到惊讶.几个月前我看到OLDER版材料的例子,md-icon而不是mat-icon等等......

因此,这不能解决抛出的错误

MaterialModule.forRoot()
Run Code Online (Sandbox Code Playgroud)

错误

mat-icon不是已知的元素角度材质

小智 25

我遇到了测试材料组件的相同问题.

感谢k.vincent在评论中为我提供了正确的答案.

对于使用Material的组件,请确保*.spec文件与此类似:

import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';

...

beforeEach(async(() => {
    TestBed.configureTestingModule({
        declarations: [ MyComponent ],
        schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
    })
    .compileComponents();
}));
Run Code Online (Sandbox Code Playgroud)

  • 这在 Angular 7 中对我来说仍然失败 (3认同)
  • 谁能解释这个问题的“原因”,所以我不只是复制/粘贴并继续变得无知。 (3认同)
  • CUSTOM_ELEMENTS_SCHEMA 定义一个架构,允许 NgModule 包含以破折号 (`-`) 命名的非 Angular 元素和以破折号 (`-`) 命名的元素属性。所以,我认为它根本忽略了它们是特殊元素。实际上,我必须从我的测试模块中删除 MatIconModule,然后它就起作用了。 (2认同)