2

これはとても簡単に思えますが、なぜこの単純なコードが機能しないのかわかりません。

Angular E2E テストで API バックエンドをモックするモック モジュールを追加しています。分度器 1.6.0 を使用しています。分度器のドキュメントによると、追加の引数としてそれらを送信するだけで可能です。ただし、私の関数は引数がないと主張しています...

var mock = function() {
  // This is undefined and arguments.length is 0....why???
  var env = arguments[0];
  var mocks = angular.module('mocks.login', ['MyApp', 'ngMockE2E']);
  mocks.run(function($httpBackend) {
    $httpBackend.whenGET(env.apiBase + '/companies').respond([]);
  });
};

browser.addMockModule('mocks.login', mock, {apiBase: ""});

問題があれば、onPrepare の分度器構成ファイルでこれを行っています。これは、ユーザーのログイン中に使用される API 呼び出しをモックしようとしているからです。どんな助けでも大歓迎です。

4

2 に答える 2

0

どうやら引数は配列として渡す必要があります。これは私にとってどのように機能したかです:

        var test =  {
            val1: 'val1',
            val2: 'val2'
        };
       browser.addMockModule('mockModule', function( args) {
            angular.module('mockModule', [])
                .value('TEST', args[0]);

        }, [test]);
于 2016-07-25T15:37:53.117 に答える
-1

これは私のために働く:

var mock = function(args) {
    // args.apiBase should be available here
    var env = args;
    var mocks = angular.module('mocks.login', ['MyApp', 'ngMockE2E']);
    mocks.run(function($httpBackend) {
        $httpBackend.whenGET(env.apiBase + '/companies').respond([]);
    });
};

browser.addMockModule('mocks.login', mock, {apiBase: ""});
于 2015-11-25T16:36:08.320 に答える