問題タブ [angular-test]

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 に答える
1647 参照

javascript - 分度器でマウスの動きを制御する

特定のシナリオでは、マウスを完全に制御する必要があり、actions()クラスではそれができません。

私のアプリケーションにはマップがあり、なげなわを使用してマップの特定の部分を選択する機能があります (なげなわで円を描き、選択が赤い円で表されるとします)。さらにナビゲーションするためにポップアップのみが表示されます。 、しかし、以下のようなアクションクラスを使用すると

実際のマウスの動きは発生せず、Java ロボット クラスを使用する以外に解決策が見つからなかったため、ロボット メソッドを含む Java クラスを呼び出すバッチ ファイルを作成したいのですが、方法がわかりません。


アップデート

上記のコードを実行したときの私の観察結果は次のとおりです。

  1. 行までvar plot0、コードは正常に実行されます。
  2. その後、browser.action()...Chrome が分度器によって閉じられる直前にのみ実行されます。理由がわからない。(また、それを確認するために睡眠を含めました)
  3. また、Chrome を閉じる直前に、マップ上に赤い直線が表示されますが、その後にポップアップが表示されません (アクション クラスによってマウスが解放されない可能性があります)。

今回追加するplot0のは、コードに要素を渡していないことです。上記の仕様が実行される直前に、マップ上にマウス ポインターを手動で置いているだけです。

0 投票する
4 に答える
90160 参照

angular - @Input() を使用した Angular2 単体テスト

インスタンス変数でアノテーションを使用するコンポーネントを持っていて、メソッド@Input()の単体テストを作成しようとしていopenProductPage()ますが、単体テストのセットアップ方法が少しわかりません。そのインスタンス変数を publicにすることもできますが、それに頼る必要はないと思います。

openProductPage()モックされた製品が注入され (提供されますか?)、メソッドをテストできるように Jasmine テストをセットアップするにはどうすればよいですか?

私のコンポーネント:

0 投票する
3 に答える
6760 参照

angular - 単体テストが Chrome で成功し、PhantomJS で失敗するのはなぜですか?

angular-cli で Angular2 final (2.0.2) を使用しています。PhantomJS で単体テストを実行するように設定しようとしています。Chrome と karma-chrome-launcher を使用して仕様を実行すると、すべてのテストに合格します。Phantomjs でビルド済みの 2.1.13 と karma-phantomjs-launcher 1.0.2 のテストで同じことを実行すると失敗します。

karma.conf の plugins 配列に phantomjs ランチャーを追加し、browser 配列に PahntomJS を追加しました。

私が得ているエラーは次のとおりです。

PhantomJS 2.1.1 (Mac OS X 0.0.0) DataTableFormat は日付をミリ秒単位で変換する必要があります FAILED ReferenceError: Can't find variable: Intl in src/main/js/test.ts (line 53565) intlDateFormat@webpack:///Users /sninio/dev/csp-ui/~/@angular/common/src/facade/intl.js:117:0 <- src/main/js/test.ts:53565:20 webpack:///Users/sninio /dev/csp-ui/~/@angular/common/src/facade/intl.js:148:36 <- src/main/js/test.ts:53596:59 dateFormatter@webpack:///Users/sninio /dev/csp-ui/~/@angular/common/src/facade/intl.js:157:0 <- src/main/js/test.ts:53605:39 format@webpack:///Users/sninio /dev/csp-ui/~/@angular/common/src/facade/intl.js:192:0 <- src/main/js/test.ts:53640:29 transform@webpack:///Users/sninio /dev/csp-ui/~/@angular/common/src/pipes/date_pipe.js:92:0 <- src/main/js/test.ts:70473:90 transform@webpack:///Users/sninio/dev/csp-ui/src/main/js/app/pages/+platform/events/data-table/data-table.pipe.ts:9:4418 <- src/main/js/test.ts:52698:5787 webpack:///Users/sninio/dev/csp-ui/src/main/js/app/pages/+platform/events/data-table/data-table .pipe.spec.ts:20:30 <- src/main/js/test.ts:60923:30 execute@webpack:///Users/sninio/dev/csp-ui/~/@angular/core/bundles /core-testing.umd.j <- src/main/js/test.ts:2997:28 webpack:///Users/sninio/dev/csp-ui/~/@angular/core/bundles/core-testing .umd.js:951:32 <- src/main/js/test.ts:3084:56 invoke@webpack:///Users/sninio/dev/csp-ui/~/zone.js/dist/zone. js:203:0 <- src/main/js/test.ts:98886:33 onInvoke@webpack:///Users/sninio/dev/csp-ui/~/zone.js/dist/proxy.js:72 :0 <- src/main/js/test.ts:68790:45 invoke@webpack:///Users/sninio/dev/csp-ui/~/zone.js/dist/zone.js:202:0 <- src/main/js/test.ts:98885:42 run@ webpack:///Users/sninio/dev/csp-ui/~/zone.js/dist/zone.js:96:0 <- src/main/js/test.ts:98779:49 webpack:/// Users/sninio/dev/csp-ui/~/zone.js/dist/jasmine-patch.js:91:27 <- src/main/js/test.ts:68526:53 execute@webpack:///Users /sninio/dev/csp-ui/~/zone.js/dist/jasmine-patch.js:119:0 <- src/main/js/test.ts:68554:46 execute@webpack:///Users/ snnio/dev/csp-ui/~/zone.js/dist/jasmine-patch.js:119:0 <- src/main/js/test.ts:68554:46 invokeTask@webpack:///Users/sninio /dev/csp-ui/~/zone.js/dist/zone.js:236:0 <- src/main/js/test.ts:98919:42 runTask@webpack:///Users/sninio/dev/ csp-ui/~/zone.js/dist/zone.js:136:0 <- src/main/js/test.ts:98819:57 drainMicroTaskQueue@webpack:///Users/sninio/dev/csp-ui/~/zone.js/dist/zone.js:368:0 <- src/main/js/test.ts:99051:42 PhantomJS 2.1 .1 (Mac OS X 0.0.0) DataTableFormat は日付文字列を変換する必要があります FAILED

angular-cli によって作成された test.ts ファイルにいくつかの構成が欠けているのではないでしょうか?

更新: インポートに失敗する唯一のテストDatePipeJsonPipe.
私もインポートしようとし@angular/common/testingましtest.tsたが、それは役に立ちません - それらは関連する index.js にエクスポートされません。
また、全体をインポートしようとしました@angular/common/pipesが、それもうまくいきませんでした。

ここにパイプがあります:

そして仕様:

ここに私のtest.tsファイルがあります-によって生成されたものからあまり変更していませんangular-cli...

これが PhantomJS ではなく Chrome で機能する理由は何ですか?

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

angular - Angular 2 テスト - 非同期関数呼び出し - いつ使用するか

Angular 2 でテストするとき、いつ TestBedで async 関数を使用しますか?

これはいつ使うの?

で、これいつ使うの?

誰でもこれについて教えてもらえますか?

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

angular - 監視可能なサービスを使用してコンポーネントのエラー処理をテストする方法

環境

コンポーネントをテストしようとしています。別の投稿で、関数の直接呼び出しのテストについて質問しました。ここでは、同じサンプル コンポーネントを使用して、コンポーネントのエラー処理に焦点を当てています。

サービスが観察可能なエラーを返したときに、コンポーネントが適切に console.error(error) を呼び出すことをテストしたいと考えています。

このエラー トリガーを「作成」してコンポーネントをテストする方法は、それを適切に処理します。スパイがそれを行うことができると聞きましたが、このスパイをどこにセットアップすればよいかわかりません。

サービスの http 要求が失敗する可能性があるケースをシミュレートしたいと考えています。何らかの理由またはエラーコード。

コード

コンポーネント、スタブ サービス、および私の仕様ファイルのコードは次のとおりです。

成分

コンポーネントスペックファイル

スタブ サービス