Подигравка на 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();

а също и onLoad:

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

Когато навигирам с помощта на browser.get(...), onLoad.whenGET се извиква.

person AngularBoy    schedule 18.12.2015