У меня есть куча модульных тестов, которые идут хорошо, и я начал добавлять тесты Protractor E2E в свой проект. Я занимаюсь проверкой интерактивных элементов на странице, но у меня возникают проблемы с тестированием определенных данных, отправляемых из браузера.
Например, я хочу посмотреть, не нажимает ли определенная кнопка POST
на определенную конечную точку.
У меня есть транспортир настроить, используя следующие:
/*globals global*/
module.exports = function() {
'use strict';
var chai = require('chai')
, promised = require('chai-as-promised');
global.expect = chai.expect;
chai.use(promised);
}();
Я понимаю, как использовать транспортир для взаимодействия:
it('send data to the "log" endpoint when clicked', function() {
var repeater = element.all(by.repeater('finding in data.items'));
repeater.get(0).click().then(function() {
// $http expectation
});
});
Однако, я не знаю, как настроить $httpBackend
в транспортир поэтому я могу захватить данные, которые отправляются в результате события .click()
. Нужен ли мне дополнительный модуль?
В Karma/Mocha я бы просто:
beforeEach(module('exampleApp'));
describe('logging service', function() {
var $httpPostSpy, LoggingService;
beforeEach(inject(function(_logging_, $http, $httpBackend) {
$httpPostSpy = sinon.spy($http, 'post');
LoggingService = _logging_;
backend = $httpBackend;
backend.when('POST', '/api/log').respond(200);
}));
it('should send data to $http.post', function() [
LoggingService.sendLog({ message: 'logged!'});
backend.flush();
expect($httpPostSpy.args[0][1]).to.have.property('message');
});
});
Но я не знаю, как получить ссылку на $httpBackend
и inject
модулей в транспортир.