問題タブ [angularjs-e2e]
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.
angularjs - AngularJS: e2e テストでの $scope オブジェクトへのアクセス
数学の個別指導アプリケーションを構築しており、angular の e2e テスト スイートを使用して UI をテストしたいと考えています。
現在、ランダムな分数を生成し、一連の陰影付きおよび陰影なしのボックスを表示し、ユーザーに陰影によって形成された分数を入力するよう求める分数ページに取り組んでいます。
e2e testを使用して、UI が正しい入力と正しくない入力の両方にどのように応答するかをテストしたいと思います。ただし、ページの読み込み時に分数がランダム化されるため、テスト内からの「正しい」入力が何であるかはわかりません。
入力に対する正しい答えを得る最も簡単な方法は$scope.problemObject
、コントローラーの at にある Fraction オブジェクトにアクセスし、その API 関数.getNumerator()
とを呼び出すこと.getDenominator()
です。ただし、テスト内からこのオブジェクトにアクセスする方法が見つかりませんでした。
私のコントローラーからの関連行は次のとおりです。
私が試したこと
binding()
最初は必要なことを行うと思っていましたが、などbinding()
へのすべての呼び出しは、バインディングが見つからないというエラーを発行します。これは、と の戻り値がUI に直接バインドされていないためだと思われます。binding('problemObject')
binding('problemObject.getNumerator()'
$scope.problemObject
$scope.problemObject.getNumerator()
angular.element().scope()
angular.element('#problem').scope().problemObject
私がテストしているページのコンソールからの実行は完全に機能します。ただし、テスト内から同じ行を試すと、「セレクターが実装されていません」というエラーが発生します。
私もいくつかのバリエーションを試しました:
element('#problem').scope().problemObject
: エラー: 'オブジェクト # にはメソッド 'scope' がありません''
angular.element(element('#problem')).scope().problemObject
: エラー: 「未定義のプロパティ 'problemObject' を読み取ることができません」
angularjs - AngularJS e2e テストでチェックボックスがオンになっていることを検証する方法は?
AngularJS e2e テストを試してみましたが、チェックボックスがチェックされているかどうかを判断するのに行き詰まっています。
サンプルとして、チェックボックス入力のエンド ツー エンド テストを使用しました(「例」の「エンド ツー エンド テスト」タブを参照)。
HTML スニペット:
Value1: <input type="checkbox" ng-model="value1"> <br/>
コントローラーのスニペット:
これが私が試したものです:
1)expect(binding('value1')).toEqual('true');
value1
これは、が画面に表示されている限り、サンプル エンド ツー エンド テストで機能します{{value1}}
。これをローカルでテストして `{{value1}} を削除すると、バインディング テストは失敗します。私の実際の例のほとんどでは、画面のどこにもチェックボックスの値を表示していません。
2)expect(input('value1').val()).toEqual('true');
値は常にデフォルトでon
あり、チェックボックスがチェックされた状態であるかどうかとは関係ありません (この投稿から取得)。
注: Angular E2E テストは、将来的に分度器に置き換えられるようです (ドキュメントを参照してください) 。
angularjs - Angularjs E2E シナリオ テストは GET パラメータにアクセスできますか?
runner.html
E2E テスト ファイルを使用して、Angular プロジェクトで統合テストを行っています。
この JavaScript コードを使用するとpauseAll
、テスト中に読み込まれるすべてのページを手動で確認したいときに、ファイルの先頭にある変数を変更するだけで済みます。
私の質問: GET パラメータの pauseAll が runner.html URL 経由で渡された場合、pauseAll を true に等しくするにはどうすればよいですか? 例えば:
angularjs - コード変更後にangularjse2e-testを自動リロードする方法
e2e-testingを実行すると、それは機能しますが、テストが成功すると切断されます。継続的にテストする方法はありますか?
angularjs - AngularJS E2Eテストでelement()。offset()を使用する
Angularでエンドツーエンドのテストを作成していますが、別のDOM要素との関係でDOM要素の位置を確認したいと思います。幸い、Angular E2E DSLには、jQueryのoffset()メソッド用のパススルーメソッドがあります。私のユースケースに最適です!
ただし、このメソッドが返すオブジェクトの使用方法がわかりません。offset()を呼び出すと、プロパティがtopとleftのオブジェクトが返されます。テストでこれらのプロパティにアクセスしようとすると、Angularは文句を言います。
このコードはうまく機能します:
このコードは機能せず、エラーをスローします。
offset()からの戻り値を使用して、おおよそ次のような期待値を作成するにはどうすればよいですか。
アップデート
Josh David Millerと行ったり来たりした後、私の本当の質問は、expect()呼び出しの外でangular.scenario.Futureオブジェクトの値を取得して、他の期待の基礎として使用できるようにする方法です。 ?
unit-testing - ENTER キーを使用した AngularJS e2e テスト
AngularJS TODO MVC アプリケーションの単体テストを作成しようとしていますが、e2e テスト構文の学習に少し行き詰まっています。
これまでのところ、ここに私が持っているものがあります:
そして私の設定:
つまり、「Enter」キーをシミュレートする方法が必要です。これは、この TODO MVC アプリが項目をリストに追加する方法だからです。これどうやってするの?
angularjs - Javascript.confirm() と Angularjs Karma e2e テスト
いくつかのアクションを実行する前に、単純な javascript 確認を使用するAngularjsアプリケーションがあります。
コントローラ:
意見:
ここで、トークンがビューで正しく置き換えられていることを確認するためのエンド ツー エンド テストが必要です。javascript.confirm()
テストの実行を停止しないように、呼び出しを傍受するにはどうすればよいですか?
テスト:
これまでのところ、window.confirm
関数を再定義しようとしましたが、実際の呼び出しは未定義であると不平を言っています。
また、Jasmine スパイをセットアップしたかったwindow.confirm
のですが、次の構文spyOn(window, 'confirm');
では、スパイできないというエラーが表示されnull
ます。
そのようなテストを機能させるにはどうすればよいですか?
angularjs - 外部 AngularJS アプリケーションのテスト
外部アプリケーションで AngularJS を使用して E2E テストを行う方法はありますか? つまり、Windows および Linux マシンで Karma テスト ランナーを実行して、http://externaldomain.com (別のマシン) にあるアプリケーションをテストできるようにしたいということです。
私が見たすべての例では、アプリケーションが Karma (localhost) と同じサーバー/ドメインでホストされています。これはオプションではなく、Selenium テストの使用から Angular DSL を使用した E2E に変換できるかどうかを確認したいと考えています。しかし、Karma / E2E がこれをサポートしていないように見えるので、これは私たちにとって問題になりつつありますか?
ありがとう