問題タブ [angular-scenario]

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 投票する
2 に答える
2558 参照

javascript - Angular 単体テスト: ブラウザーが定義されていませんか?

angularアプリのコントローラーで単体テストを実行しています。これまでの私のテストは次のとおりです。

コントローラー付き

ただし、これを実行するとエラーが発生しますbrowser is not defined。ここで何が起こっているのですか?これはAngularによって提供されていませんか?

編集:さらに奇妙なことに、inject定義されていないエラーが発生しています。

設定ファイルは次のとおりです。

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

testing - AngularJS の $httpBackend - 設定方法は?

私は角度のあるアプリを作成しており、それらに対してエンドツーエンドのテストを実行しています。いくつかのテストのためにインスタンスを実行する必要があり$httpBackendますが、その方法がわかりません。現在、私のコードは次のようになります

次にrunner.html、テストに移動して実行します。私の他のすべてのテストは Karma によって表示されますが、これは表示されません。どうしたの?

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

angularjs - AngularJS のシナリオでは、クラスとフューチャが必要です

要素にクラスがあるかどうかを確認するテストを作成しようとしています:

問題は、エラーが発生し続けることTypeError: Cannot read property 'indexOf' of undefinedです。未来があると思っていましたが、そうでない理由がわかりませel.attr('class')ん。これを回避する別の方法はありますか?

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

angularjs - Angular Scenario Runner を使用してテスト スイートのサブセットを実行する方法は?

TDD に基づいてアプリケーションを開発しています。

サーバー側では、Python テスト ランナーが優れているため、すべて問題ありません。

JS では、mocha を使い始めましたが、これも素晴らしいです。

Karma と Angular Scenario Runner を使用して最初のテストを作成しましたが、これも素晴らしいものです。

問題は、実際に Angular Scenario Runner を使い始めてすぐに、60 回の e2s テストを行うことになったことです。すべてのテストの実行には 1 分かかります。

今、新しいテストを書くとき、テストをチェックするたびに、最大 60 秒待たなければなりません。

Mocka には、.only http://visionmedia.github.io/mocha/#exclusive-testsを使用して特定のテストのみを実行するこのオプションがあります。


Angular Scenario Runner は簡単に文書化されているようですが、どういうわけか Jasmine を模倣しています。


Angular Scenario Runner コードを見ると、テストをスキップするための xit 定義しか見つかりませんでした。

テストのサブセットのみを実行するよう Angular Scenario Runner に依頼するトリックはありますか?

スイート全体をスキップする xdescribe ブランク メソッドを実装しましたが、これは長期的には実現可能です。

どうもありがとう!

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

testing - AngularJS E2E テストの実行順序

it()そのため、ブロック内の関数describe()は (常に) 記述した順序で実行されないことに気付きました。

それらは非同期ですか?そして、それらを特定の順序で強制的に実行する方法は?

it()一連の UI ミューテーションを連鎖させ、基本的に各関数で前のステップの後に UI の状態をチェックさせたいと考えています。

それらが非同期で実行される場合、そのようなことは要点を打ち負かします。つまり、各it()ブロックには前のブロックのすべてのステップを含める必要があるということですか?

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

angularjs - Angular E2E シナリオ セレクターは、ハイパーリンクが表示されているかどうかを検出しません

次のe2eテストがあります:

次のテンプレート:

どこ$scope.wizardstep = 2

残念ながら、期待値は常に 0 です。

このコード/テストの何が問題なのか誰にもわかりませんか?

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

angularjs - angular-scenario.js を含めると、Rails Jasmine テストが実行されないため、機能しなくなります

Rails バックエンドと AngularJS フロントエンドで構成される (現在の) 非常に単純なサイト用の Jasmine テストがいくつかあります。Jasmine のエンド ツー エンド テストを実行しようとしていますが、angular-scenario.js を含めるとテストが実行されません。それは彼らを失敗させません。それはそれらをまったく開始しません。

私はバージョン 1.0.7 を使用しており、すべての Angular ファイルは同じバージョンのものです (すべて公式の Angular サイトのものです。私が使用している Rails のバージョンは 3.1.3 と Ruby 1.9.3 です。私もjasmine gem バージョン 1.3.2 と jasmine-rails 0.4.5 を使用します。

仕様/javascripts/support/jasmine.yml:

spec/javascripts/spec_helper.coffee:

仕様/javascripts/templates/brands/index_spec.coffee:

もちろん、angular-scenario.js を配置してテストが正しく機能するまで、これは単なるプレースホルダーです。

angular-scenario.js がなければ、テストが実行されます。それで、何もありません。

テストするには、通常 RAILS_ENV=test rake spec:javascript を実行しますが、Web サーバー インターフェイスからも試しました。

angular-secnario.js を含まない出力:

angular-scenario.js を使用した出力:

私が試したこと:

  • angular-scenario.js を vendor/assets/javacripts に移動し、spec_helper.coffee から要求します。
  • spec_helper.coffee から他の Angular 関連の要件を削除します。
  • angular-scenario.js には、パッケージ化された jQuery が付属しています。奇妙なことに、jQuery ビットをコメント アウトすると、テストが実行されますが、angular-scenario には明らかに jQuery が必要なため、テストは失敗します。また、angular-scenario で jQuery をコメントアウトし、jquery-rails gem から jQuery を含めてみました。(それは暗闇でのショットでした。実際にうまくいくとは思いませんでした。)

これでスイングしたい人は誰でも本当にありがとう。

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

testing - Karma + AngularJS Scenario Test Runner とフォームのトラブル

わかりました。フォームのフィールドに入力しているテスト ランナーに問題がありますが、フォームを送信すると、これらのフィールドが空白として参照されます。

element('some_element).val('some_val') を使用してフィールドに書き込むと、これは正常に機能します。

次に、フィールドを expect(element('some_element').val()).toBe('some_val') でチェックすると、問題なく合格します

しかし

このフォームを送信すると、これらの要素はすべて空であると返されます。ただし、1文字だけ手動で変更でき、問題なく受け入れられます。

このような問題の原因を説明できる人はいますか? また、それを回避する方法に関する可能な解決策はありますか?