2

オブザーバーを含むいくつかのメソッドの単体テストを作成する方法を理解するのに苦労しています。このように設定された Iron-pages 要素があります

<iron-pages>
    selected="[[page]]"
    attr-for-selected="name"
    fallback-selection="manhattan-transit-view404"
    role="main">
    <manhattan-transit-home name="home"></manhattan-transit-home>
    <manhattan-transit-map name="map"></manhattan-transit-map>
    <manhattan-transit-route name="route"></manhattan-transit-route>
    <manhattan-transit-report name="report"></manhattan-transit-report>
    <manhattan-transit-view404 name="view404"></manhattan-transit-view404>
</iron-pages>

ユーザーが Web ページを変更できるように、対応するボタンをクリックしてアクセスできる Web ページの名前が含まれています。スクリプトノード内にこのように設定されたオブザーバーがあります

properties: {
    page: {
      type: String,
      reflectToAttribute: true,
      observer: '_pageChanged'
    }
  },

  observers: [
    '_routePageChanged(routeData.page)'
  ],

  _routePageChanged: function(page) {
    this.page = page || 'home';
  },

  _pageChanged: function(page) {
    // Load page import on demand. Show 404 page if fails
    var resolvedPageUrl = this.resolveUrl('manhattan-transit-' + page + '.html');
    this.importHref(resolvedPageUrl, null, this._showPage404, true);
  },

  _showPage404: function() {
    this.page = 'view404';
  }

私はテストを始めたばかりで、_routePageChanged、_pageChanged、および _show404 関数のテストが必要だと思いますが、それらのテストにどのようにアプローチすればよいかわかりません。クリックされた情報に基づいてページが正しく切り替わることを確認する必要があることはわかっています。おそらく、テストのためにさまざまなクリックをシミュレートしたいのですが、それを行う方法がわかりません。

4

0 に答える 0