コマンド ラインから Web コンポーネント テスターを使用して、Polymer コンポーネントでフィクスチャ ベースのテストを実行しています。テストは Chrome (v.47) では成功しますが、Firefox (v.42) では失敗します。問題は、Polymer コンポーネントの一部の変更オブザーバー関数で、予想されるデータが Chrome で受信されているが、Firefox では空であるため、後者でテストが失敗することです。重要なコードは次のとおりです。
ポリマー コンポーネント: Polymer({ is: 'コンポーネント名',
properties: {
data: {
type: Array,
observer: '_dataChanged'
},
_dataChanged: function() {
process(this.data) // this line
...
},
...
Chrome では、上記の「この行」の「this.data」の値は、html フィクスチャで渡されたものに関係なく、空ではありません。これにより、テスト ケースが成功します。しかし、Firefox では、イベントから受け取った「this.data」の値が空の配列 [] であり、上記のテストが失敗します。これが事実である理由はありますか?
また、「WebComponentsReady」イベントのイベント リスナー内にテスト スイートをラップしようとしましたが、web-component-tester は、そのようなイベントが発生した後にのみスイートが開始されることを既に保証しています。このアプローチは Chrome では引き続き機能しますが、Firefox では失敗します。