1

バックエンドレスの e2e テストを作成しようとしているので、API 呼び出しをモックする必要があります。これが私がしたことです:

angular.module('foo.bar.e2eConf', ['foo.bar', 'ngMockE2E']).
  run(function($httpBackend) {
    $httpBackend.whenGET('/foo/bar').respond({foo:'bar'});
  });

次に、次のconf/karma.e2e.confように構成しました(パスは問題ありません):

var basePath = '../';
var files = [
  ANGULAR_SCENARIO,
  ANGULAR_SCENARIO_ADAPTER,
  // bower libs
  'components/angular/index.js',
  'components/jquery/jquery.js',
  'components/angular-resource/index.js',
  'components/angular-mocks/index.js',
  'components/chai/chai.js',
  'test/chai.conf.js',
  'src/app/**/*.js',
  {pattern:'src/app/**/partials/*.tpl.html', included:false},
  'test/e2e/**/*.js'
];
var singleRun = false;
var browsers = ['Chrome'];
var proxies = {'/': 'http://localhost:8000/'};

API 呼び出しを含まないテストを実行できますが、API 呼び出しを含むテストを実行すると、いい結果が得られます。Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:9876/foo/bar

私はいくつかのものを誤って設定したと思いますが、何がわかりませんか??

プロキシとモックの間に競合はありますか? つまり、モックを使用する代わりにプロキシ/foo/barしますか?http://localhost:8000/foo/bar

何か案が?

よろしく

ザビエル

4

1 に答える 1

1

foo.bar モジュールからブートストラップするのではなく、foo.bar.e2eConf モジュールからブートストラップするアプリのバージョンを作成する必要があります。

javascript ファイル angular-mocks.js と、上記で定義した新しいモジュールをアプリのインデックス ページに含める必要があります。

この新しいアプリを使用して、モックからデータが返されることを確認するだけで、カルマの外部でこれをテストできるはずです。

おそらく、これらのファイルの半分を Karma 構成に追加する必要はありません。これは、テスト シナリオにファイルを追加するためだけのものです。アプリは iframe に読み込まれ、アプリは独自の JavaScript の読み込みを担当します。

私はphpを使用して、使用するURLに応じてアプリのいずれかのバージョンをサーバーアップしています.API呼び出しを使用する実際のバージョンか、モックを使用するe2eバージョンです。

于 2013-06-07T07:57:13.240 に答える