私はジャスミンカルマを実行しようとしています
ng test
Angularマテリアル。すべての問題に驚きます。何ヶ月も前にmd-icon
ではなくmat-icon
などと呼ばれた古いバージョンのマテリアルの例を参照してください。
したがって、これはスローされたエラーを修正しません
MaterialModule.forRoot()
エラー
mat-iconは既知の要素ではありませんangular material
マテリアルコンポーネントのテストと同じ問題が発生していました。
k.vincent に、コメントで正しい答えを提供してくれてありがとう。
マテリアルを使用するコンポーネントの場合、*。specファイルが次のようになっていることを確認してください。
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
...
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MyComponent ],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
.compileComponents();
}));
'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();
}));