макет $ httpBackend в угловых тестах e2e

У кого-нибудь есть идеи как смоделировать $ httpBackend в тестах angular e2e? Идея заключается в том, чтобы блокировать запросы XHR при выполнении тестов на travis-ci. Я использую карму для прокси-ресурсов и партиалов из моего приложения rails, работающего на travis. Я хочу сделать приемочное тестирование без реальных запросов к БД.

Вот часть моего файла конфигурации кармы:

...
files = [
  MOCHA,
  MOCHA_ADAPTER,

  'spec/javascripts/support/angular-scenario.js',
  ANGULAR_SCENARIO_ADAPTER,

  'spec/javascripts/support/angular-mocks.js',
  'spec/javascripts/e2e/**/*_spec.*'
];
...

proxies = {
  '/app': 'http://localhost:3000/',
  '/assets': 'http://localhost:3000/assets/'
};
...

Вот часть моего spec-файла:

beforeEach(inject(function($injector){
  browser().navigateTo('/app');
}));

it('should do smth', inject(function($rootScope, $injector){
  input('<model name>').enter('smth');
  //this is the point where I want to stub real http query
  pause();
}));

Я пытался получить сервис $ httpBackend через $ инжектор:

$injector.get('$httpBackend')

Но это не тот, который используется внутри iframe, где выполняются мои тесты.

Следующая попытка, которую я сделал, использовала angular.scenario.dsl, вот пример кода:

angular.scenario.dsl('mockHttpGet', function(){
  return function(path, fakeResponse){
    return this.addFutureAction("Mocking response", function($window, $document, done) {
      // I have access to window and document instances 
      // from iframe where my tests run here
      var $httpBackend =  $document.injector().get(['$httpBackend']);
      $httpBackend.expectGET(path).respond(fakeResponse)
      done(null);
    });
  };
});

Пример использования:

it('should do smth', inject(function($rootScope, $injector){
  mockHttpGet('<path>', { /* fake data */ });
  input('search.name').enter('mow');
  pause();
}));

Это приводит к следующей ошибке:

<$httpBackend listing>  has no method 'expectGET'

Итак, на данный момент я понятия не имею о следующем шаге. Кто-нибудь пробовал делать что-то подобное, действительно ли этот тип заглушки возможен?

Ответы на вопрос(3)

Ваш ответ на вопрос