スポンサーリンク

[Angular] MatSnackBarのテストをする

実践

テスト対象ソース

以下の単純なスナックバーを表示しているコンポーネントに対してテストする。

テストソース

  • テストケースはit関数内で、スナックバーのメッセージが一致しているかでテストしています。
import { TestBed } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { AppComponent } from './app.component';
import { MatSnackBar } from '@angular/material/snack-bar';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { NoopAnimationsModule } from '@angular/platform-browser/animations'

describe('AppComponent', () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [
        RouterTestingModule,
        MatSnackBarModule,
        NoopAnimationsModule
      ],
      declarations: [
        AppComponent
      ],
      providers: [
        MatSnackBar,
      ]
    }).compileComponents();
  });

  it('should display snack-bar message', async () => {
    const fixture = TestBed.createComponent(AppComponent);
    const component = fixture.componentInstance;
    await component.openSnack();
    const snackElement = document.querySelector("simple-snack-bar")
    expect(snackElement?.textContent).toEqual("ボタンクリックしましたOK");
  });

});