mock $ httpBackend w kątowych testach e2e

Czy ktoś ma pomysł, jak wyszydzić $ httpBackend w kątowych testach e2e? Pomysł polega na blokowaniu żądań XHR podczas uruchamiania testów na travis-ci. Używam karmy do proxy zasobów i części z mojej aplikacji szyny uruchomionej na travisie. Chcę przeprowadzić testowanie akceptacji bez rzeczywistych zapytań DB.

Oto część mojego pliku konfiguracyjnego karmy:

...
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/'
};
...

Oto część mojego pliku specyfikacji:

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();
}));

Próbowałem odebrać usługę $ httpBackend za pośrednictwem $ injector:

$injector.get('$httpBackend')

Ale to nie jest ten, który jest używany w ramce iframe, gdzie uruchamiane są moje testy.

Następna próba, którą zrobiłem, polegała na użyciu angular.scenario.dsl, tutaj jest kod samle:

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);
    });
  };
});

Przykład użycia:

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

Prowadzi to do następującego błędu:

<$httpBackend listing>  has no method 'expectGET'

W tym momencie nie mam pojęcia o następnym kroku. Czy ktoś próbował coś takiego zrobić, czy ten rodzaj stubowania jest naprawdę możliwy?

questionAnswers(3)

yourAnswerToTheQuestion