How can I use Mock HTTP with Jasmine and Protractor ?
In my test.spec.js, I declared a mock, but this mock doesn't work. I have not error. My api always responds and not the mock.
In my app.js I don't have "ngMock".
I added this in my index.html :
node_modules/angular-mocks/angular-mocks.js
test.spec.js
var loginPO = new(require('./models/login.model.js'))();
describe("hello", function() {
it("I click the button-search button", function() {
loginPO.wait(10);
browser.addMockModule('modName', function() {
//angular.module('modName', ['myApp', 'ngMockE2E'])
angular.module('modName', ['ngMockE2E'])
.run(function ($httpBackend) {
$httpBackend.whenPOST('http://ift.tt/1Tc9GBS').respond('response');
console.log('ok');
});
});
//browser.getRegisteredMockModules();
loginPO.clickButtonSearchButton();
loginPO.wait(10);
});
it("I am on the home page", function() {
loginPO.visit('#/');
});
...
});
models/login.model.js
'use strict';
var _ = require('lodash');
var LoginPageObject = function() {
var signInButton = element(by.id('signIn'));
_.mixin(this, require('./common/base.js').Base);
this.path = '#/';
this.clickButtonSearchButton = function() {
return browser.driver.findElement(by.id('button-search')).click();
};
...
};
module.exports = LoginPageObject;
common/base.js
function visit(path, params) {
// return browser.get(this.path + (params || ''));
return browser.get(this.path + (params || ''));
}
function wait(params) {
params = params * 1000;
return browser.sleep(params);
}
...
exports.Base = {
visit: visit,
wait: wait,
...
};
protractor.config.js
exports.config = {
directConnect: true,
seleniumServerJar: 'node_modules/selenium-server/lib/runner/selenium-server-standalone-2.48.2.jar',
specs: [
'jasmine/*.spec.js'
],
getPageTimeout: 30000,
capabilities: {
'browserName': 'chrome',
version: '',
platform: 'ANY'
},
framework: 'jasmine'
};
Aucun commentaire:
Enregistrer un commentaire