Насмешка над бэкэндом HTTP в сквозном тестировании транспортира JavaScript

У меня есть сквозной тест (JavaScript + Protractor), и мне нужно смоделировать бэкэнд API.

Я использую http-backend-proxy:

Вот что я сделал:

var HttpBackend = require('http-backend-proxy');
var myData = require('myFakeApiResponse.json');

this.proxy = new HttpBackend(browser);  
this.proxy.whenGET(/.+\/api\/groups\/.+/).respond(200, myData);

JavaScript жалуется, что whenGET не является функцией.

Если я сделаю так:

this.proxy.whenGET(/.+\/api\/groups\/.+/);

Он больше не жалуется (но, очевидно, мне нужно установить ответ, поэтому мне нужна часть .respond())

Я не могу понять, почему это не работает. Прокси-объект, кажется, установлен, когда я console.log получаю:

{ when: [Function],
  whenGET: [Function],
  whenPUT: [Function],
  whenHEAD: [Function],
  whenPOST: [Function],
  whenDELETE: [Function],
  whenPATCH: [Function],
  whenJSONP: [Function],
  context: {},
  flush: [Function],
  syncContext: [Function],
  onLoad: [Getter] }

кажется, это правильный объект JavaScript (даже функция whenGET() указана!)


person Gianluca Ghettini    schedule 04.12.2015    source источник
comment
Вы добавили angular-mocks.js в HTML-код своей страницы?   -  person Michael Radionov    schedule 04.12.2015
comment
Можете ли вы предоставить фактическую трассировку стека, если таковая имеется?   -  person Nick Tomlin    schedule 04.12.2015


Ответы (1)


Я также использую http-backend-proxy.

Мне это нужно для сквозных проходов (в основном html-страницы в качестве приложения Angular):

proxy.onLoad.whenGET(/.*/).passThrough();

а также при загрузке:

proxy.onLoad.whenGET('the url').respond(...);

Когда я перемещаюсь с помощью browser.get(...), вызывается onLoad.whenGET.

person AngularBoy    schedule 18.12.2015