問題タブ [wct]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3379 参照

polymer - Polymer で動的にレンダリングされる要素の単体テスト

概要

dom-if内で動的にレンダリングされる DOM 要素は、dom-repeat <templates>非同期でレンダリングされるように見えるため、単体テストが少し面倒になります。


ポリマー成分

テスト


失敗したように見える理由:

dom-if/をトリガーするボタンをクリックするとdom-repeat、要素が同期順序でレンダリングされません。

  • およびそのdom-if後続/ネストされたdom-repeatレンダリングは非同期で行われます。

  • さらに悪いことに、buttonそれ自体が計算された/バインドされた方法でクラスを取得します ( に注意class$=してbuttonください)。

したがって、質問はこれに要約されます。

これらの条件の 3 つすべてをアクティブにするボタンへのクリックをシミュレートした後、クラスの、、および計算されたバインディングを同期順序で強制的にレンダリングすることは可能ですか?dom-ifdom-repeat


ノート:

  • テスト ハーネスとして Polymer の公式 WCT を使用しています。
  • 私もchai-jqueryを使っています。
  • 私も使用しましPolymer.dom.flush()たが、まだ使用していません。
  • 代わりに使用できることは承知していますchai-as-promised.jsが、このような些細な問題のテストに不必要な複雑さが追加されるため、避けたいと思います。
0 投票する
1 に答える
434 参照

unit-testing - firebase を使用するポリマー Web コンポーネントの単体テスト

Firebase 分散データベースの最新リリースを使用するポリマー Web コンポーネントのオフライン単体テストを構成しようとしています。私のテストのいくつかは合格していますが、合格したものとほぼ同じように見える他のテストは正しく実行されていません。

私の構成を示すプロジェクトを github にセットアップしました。以下にさらに解説を加えます。

サンプル: https://github.com/doctor-g/wct-firebase-demo

そのプロジェクトには、正常に動作する 2 つのテスト スイートがあります。最も単純なのはoffline-test、Web コンポーネントをまったく使用しない です。これは単に、firebase データベースのオフライン モードを使用して単体テストを実行できることを示しています。このトリックの核心は、以下に示すメソッドにあります。これは、 firebase-server に関する nfarina の作業suiteSetupから取り上げたトリックです。

すべてのテストにoffline-test合格しました。

次のスイートはwct-firebase-demo-app_test.html、同名の Web コンポーネントをテストする です。このスイートには、同様に設定されて合格する一連の単体テストが含まれていoffline-testます。依存性注入の考え方に従って、wct-firebase-demo-appコンポーネントにはdatabase、firebase データベース参照が渡される属性があり、これはすべての firebase 呼び出しを行うために使用されます。スイートの例を次に示します。

コンポーネントには非常に単純なメソッドもいくつかあります。これは、すぐに説明する壊れた部分に向かって三角測量を行う試みです。このテストに合格したと言えば十分です。

で、次の実装によってサポートされていますwct-firebase-demo-app

繰り返しますが、これらはすべてパスします。今、私たちは本当の困惑にたどり着きます。x-elementメソッドを持つ別の要素 の一連のテストがありますpushData

このメソッドのテストは、そのスイートで唯一のテストです。

このテストは合格しません。このテストの実行中に、コンソールに次のエラー メッセージが表示されます。

onceいくつかのブレークポイントを設定して実行をたどると、このエラーは呼び出しの後、コールバックがトリガーされる前に発生するように思えます。繰り返しますが、これは、上で説明した にある同じテスト構造では発生しないことに注意してくださいwct-firebase-demo-app

それが私が立ち往生しているところです。offline-testおよびwct-firebase-demo-app_testスイートは正常に動作するのに、この API キー エラーが で表示されるのはなぜx-element_testですか? 私が持っている他の唯一の手がかりは、有効な API キーをinitializeApp構成にコピーすると、代わりにテストタイムアウトが発生することです。

アップデート:

これは、テストを実行したときのコンソール ログの (パッチを適用した) イメージです。

テストの失敗を示すコンソール ログ

以下のtony19によって提起された問題を説明するために、pushData has an effectコメントアウトx-element_testされたコンソールログを次に示します。

合格したテストを示すコンソール ログ

0 投票する
0 に答える
259 参照

templates - MockInteractions アイテムのタップで Web コンポーネント テスターのアイテムが選択されない

<paper-menu>aに a を設定する要素があり<template dom-repeat>ます。

<paper-menu>に何かを追加すると、それを選択できること、および期待どおりにプロパティが更新されることをテストしたいと思います。

動作を適切にテストできません。メニューのアイテムでタップイベントをモックして、確実に発生させたいですcustom-filter-changed

で要素を選択するとelement.$.customLabels.select('red')custom-filter-changedイベントは期待どおりに発生します。

を選択して要素を選択するとMockInteractions.tap( Polymer.dom( element.root ).querySelector( 'paper-icon-item[value="red"]' ) )、要素はテープで留められますが (テストとしてペーパーアイテムにオンタップで接続しました)、要素は選択されません。

MockInteractions.tap によって起動されたタップ イベントにはターゲットまたは srcElement がなく、実際に要素をクリックした場合とはパスが異なることに気付きました。

MockInteractions.tap実際のユーザー アクションにできる限り近い模倣を使用したいと考えています。

0 投票する
2 に答える
322 参照

windows - ポリマー テストは Windows マシンで終わらない

Polymer 1.0 を使用してアプリケーションを開発しました。私の開発用コンピューターは Mac で、開発プロセス中に問題は発生していません。

ただし、Windows マシン (Windows 10) でアプリケーションのクローンを作成すると、テストがまったく機能しません。

実行するたびに、polymer testまたはwctコマンドが端末をブロックし、決して終了しません。

MACOS または Linux では完全に動作します。

0 投票する
1 に答える
494 参照

gulp - Web Component Tester - 各ビルドでテストを実行する gulp タスク

gulpfile の中に次のようなものを入れたい:

目的は、テスト フォルダーまたは要素フォルダー (Polymer コンポーネントを含む) を監視することです。それらの一部が変更される場合は、各ビルドでテストを実行してください。

私のwct.conf.js:

いくつかのページで上記のコードを見つけましたが、いくつかのテストを追加して端末に入力した後、エラーが見つかりました.tmpフォルダーが更新されず、またはのgulpような奇妙なエラーが機能しないためです。テストで意図的にミスをして失敗させたときに正しいエラーも発生したので、何か問題ないように見えますが、まったく問題ありません。Polymer is not definedajax.generateRequest

多くのファイルを含む既存のプロジェクトにテストを追加します。空のプロジェクトで同じことをしようとすると、入力するまで同じエラーが発生しましたbower install

これがbowerの依存関係の問題である可能性はありますか? または、何が悪いのか分かりますか?gulpfile のコードのこの部分は、目的の効果を実行する権利がありますか?

どうもありがとう。

0 投票する
1 に答える
57 参照

teamcity - TeamCity で web-component-tester を実行する

wct誰かがチームシティで実行するのを手伝ってくれませんか? ビルドを構成しましたが、実行時に以下のエラーが発生しますwct

0 投票する
0 に答える
165 参照

polymer - オブザーバーを含む単体テストの設定

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

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

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