Это может быть простое решение, но я просто не вижу его. Я пишу тест транспортир и настройка файла страницы объектаGeting «невозможно прочитать свойство» [метод] «неопределенного»
newstate.js (файл страницы объекта)
'use strict';
var newstate = function (url) {
browser.get(url);
};
newstate.prototype = Object.create({}, {
dd: { select: function(state) { $('select option[value="'+state+'"]').click(); } }
});
module.exports = newstate;
В файле spec.js:
'use strict';
var newstate = require('newstate.js');
describe('Testing newstate', function() {
var statePage;
beforeAll(function() {
statePage = new newstate('http://localhost:8080');
});
it('should select a state', function() {
statePage.dd.select('AK');
})
})
В conf.js файл:
exports.config = {
framework: 'jasmine',
specs: ['test-spec.js'],
useAllAngular2AppRoots: true,
jasmineNodeOpts: {
showColors: true
}
};
Когда я бегу транспортир, я получаю:
$ protractor conf.js
Failures:
1) Testing newstate should select a state
Message:
Failed: Cannot read property 'select' of undefined
Запускается браузер, открывая веб-страницу, как и должен, когда я звонил new newstate('...')
Но по какой-то причине он не хочет видеть мою функцию dd.select. Что мне не хватает или что-то не так? Благодарю.
В качестве соглашения о кодировании было бы лучше объявить конструктор как 'function Newstate (...)' – OrangeDog