web-dev-qa-db-ja.com

Angular 5マテリアルを使用すると、ジャスミンカルマテストはmat-iconで失敗します

私はジャスミンカルマを実行しようとしています

ng test

Angularマテリアル。すべての問題に驚きます。何ヶ月も前にmd-iconではなくmat-iconなどと呼ばれた古いバージョンのマテリアルの例を参照してください。

したがって、これはスローされたエラーを修正しません

MaterialModule.forRoot()

エラー

mat-iconは既知の要素ではありませんangular material

11
Scott Leary

マテリアルコンポーネントのテストと同じ問題が発生していました。

k.vincent に、コメントで正しい答えを提供してくれてありがとう。

マテリアルを使用するコンポーネントの場合、*。specファイルが次のようになっていることを確認してください。

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

...

beforeEach(async(() => {
    TestBed.configureTestingModule({
        declarations: [ MyComponent ],
        schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
    })
    .compileComponents();
}));
25
mkubal

'form'の既知のプロパティではないため、 'formGroup'にバインドできません;のテストも失敗しました。 「app-forgot-password」がAngularコンポーネントの場合、このモジュールの一部であることを確認; 「mat-card」がan 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」の既知のプロパティではないため、バインドできません。スペックファイルにRouterTestingModuleを追加することで修正できました。

import {RouterTestingModule} from '@angular/router/testing';

beforeEach(async(() => {
TestBed.configureTestingModule({
  imports: [
    FormsModule,
    ReactiveFormsModule,
    BrowserAnimationsModule,
    MaterialModule,
    RouterTestingModule
  ],
  declarations: [ LoginFormComponent ]
})
.compileComponents();
}));
0
Petra