LoginSignup
2
0

More than 5 years have passed since last update.

Angular schemasについて

Posted at

schemasプロパティ

schemasプロパティには、Angularのコンポーネントやディレクティブではない、Angular外で定義された要素とプロパティをHTMLパーサがどのように取り扱うか指定します。

SchemaMetadata型のプロパティにおいて、下表の2種類が指定できます。

プロパティ  挙動   
NO_ERRORS_SCHEMA すべての要素とプロパティを許可します。
CUSTOM_ELEMENTS_SCHEMA '-' を含む要素をカスタムエレメントとして扱い、それのみを許可します。

NO_ERRORS_SCHEMA

テスト対象となるコンポーネントのテンプレート内で、他のコンポーネントを使用しているケースを想定する。

使用している子コンポーネントをTestBedに追加していない場合、Angularコンパイラはテスト実行時に、子コンポーネントのタグを認識できず例外を投げます。

このままでは、毎回すべての子コンポーネントをTestBedに記述する必要があり、準備が煩雑になってしまいます。そこで、テストモジュールのメタデータにschemasプロパティを追加して、その配列内にNO_ERRORS_SCHEMAを記述することで、認識できない要素と属性を無視するようにコンパイラに指示します。

NO_ERRORS_SCHEMAを追加するだけで、無関係のコンポーネントやディレクティブをTestBed内に追記する必要がなくなります。

hoge.spec.ts
beforeEach(async(() => {
  TestBed.configureTestingModule({
    declarations: [ BaseHeaderComponent ],
    schemas: [NO_ERRORS_SCHEMA]//ここ追加
  })
  .compileComponents();
 }));
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0