1

角度サービスとして記述されたいくつかのコアコンポーネントを実行する「統合テスト」であるジャスミンユニットテストがいくつかあります。しかし、私のコンポーネントは Web を呼び出しません。問題を実証するための私の2つのテストは次のようなものです...

[ちなみに、CORSを無効にするプラグインがあります]

  it('test http get', function () {

    httpGet('http://endpoint.json');

    function httpGet(theUrl) {
      var xmlHttp = null;

      xmlHttp = new XMLHttpRequest();
      xmlHttp.open("GET", theUrl, false);
      xmlHttp.send(null);
      return xmlHttp.responseText;
    }

  })

  it('test angular http get', inject(function($http) {

    $http.get('http://endpoint.json').
      success(function (data, status, headers, config) {

        console.log('success');

      }).
      error(function (data, status, headers, config) {

        console.log('failure');

      });

  }));

これは $httpBackend のモックが原因であることはわかっています。ただし、実際の実装を使用する必要があります。ジャスミンの非同期機能を使用して応答またはタイムアウトを待機したいのですが、角度を実際に呼び出す方法がわかりません。

他の新しい jQuery 呼び出しでは正常に動作します。:-)

4

1 に答える 1

0

$httpBackendリクエストを示すだけで、時間を節約するためのものです。

なんで?

関数が機能していることをテストしたいが、関数はサーバーから取得したデータに依存しているとします。

データの正当性と、時間がかかる $http.get メソッドをテストする代わりに、関数の正当性をテストし、関数が本来の動作を行っていることを確認します。

ここで、非同期呼び出しを作成するために、$timeout または $interval サービスと統合できます。

また

分度器を使用: e2e - アプリケーションを「ユーザーとして」テストするエンド ツー エンドのテスト ツール。DOM 要素内の値の正当性をテストできます。例:

クリック->の値があることを<button id="a"></button>確認します。<p id="b">hello world

分度器

于 2014-11-08T15:51:51.290 に答える