Как настроить бэкэнд запроса e2e для транспортира

Я пытаюсь настроить свой независимый проект транспортира, чтобы высмеивать некоторые из моих внутренних запросов. Поэтому я включил angular-mocks.js и прикрепил другой модуль в onPrepare() функция моего protractor.conf.js:

browser.addMockModule('httpBackend', function() {
    angular.module('httpBackend', ['myApp', 'ngMockE2E']).run(function($httpBackend) {
        $httpBackend.whenPOST(/^requests\/*/).respond(function(method, url, data) {
            var obj = {"msg": "Response!"};
            return [200, JSON.stringify(obj), {}];
        });
    })
})    

Это позволяет мне перехватить любой запрос, но я не получаю то, что хочу вернуть в respond(), Кажется, я просто получаю 200 OK,

Что я делаю неправильно?

1 ответ

Решение

Просто чтобы вы знали, как я это решил:

Документы говорят следующее:

Метод response принимает набор статических данных, которые должны быть возвращены, или функцию, которая может возвращать массив, содержащий статус ответа (число), данные ответа (строка), заголовки ответа (объект) и текст состояния (строка).

В моем случае объект заголовков почему-то не кажется необязательным, и я закончил с его установкой самостоятельно перед возвратом массива:

browser.addMockModule('httpBackend', function() {
    angular.module('httpBackend', ['myApp', 'ngMockE2E']).run(function($httpBackend) {
        $httpBackend.whenPOST(/^requests\/*/).respond(function(method, url, data) {
            var obj = {"msg": "Response!"},
                resHeader = {
                    "Cache-Control": "no-cache, no-store, max-age=0",
                    "Date": "Tue, 24 Nov 2015 17:08:57 GMT",
                    "Pragma": "no-cache",
                    "Transfer-Encoding": "chunked",
                    "Content-Type": "application/json; charset=UTF-8",
                    "Expires": "Thu, 01 Jan 1970 00:00:00 GMT",
                    "Access-Control-Allow-Origin": "*",
                    "Access-Control-Allow-Headers": "origin,x-requested-with,access-control-request-headers,content-type,access-control-request-method,accept",
                    "Access-Control-Allow-Methods": "POST, GET, OPTIONS, DELETE",
                    "Access-Control-Credentials": "true",
                    "Content-Language": "de-DE",
                    "Access-Control-Max-Age": "3600"
                };
            return [200, JSON.stringify(obj), resHeader];
        });
    })
})

У кого-нибудь есть подсказка, почему это необходимо или какой из его атрибутов устарел?

Другие вопросы по тегам