Я пытаюсь проверить, что ajax используется для создания submit. Код транспортир для теста:Использование protractor spyOn() для jQuery ajax() cause error "ajax() метод не существует"
describe('login.php', function() {
it("should use ajax on submit", function() {
browser.get('/login.php');
spyOn($, "ajax");
$("form#frmLogin [type='submit']").click();
expect($.ajax).toHaveBeenCalled();
});
});
он терпит неудачу с сообщением:
Error: ajax() method does not exist
Что не так?
Другие испытания идут хорошо. Это ПК с ОС Windows. Транспортир conf:
exports.config = {
allScriptsTimeout: 11000,
specs: [
'e2e/*.js',
],
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
args: ['--test-type']
}
},
chromeOnly: true,
baseUrl: 'http://mysite.local/',
framework: 'jasmine',
jasmineNodeOpts: {
defaultTimeoutInterval: 30000
}
};
Что-то не так с моей окружающей средой?
Можете ли вы получить доступ к '$'? – aymericbeaumet
Кажется, что spyOn() не имеет доступа к объекту окна и ajax $. Но следующая строка, использующая $ для эмуляции щелчка, хорошо работает. – mawr
Если вы передаете '' 'ссылку на' spyOn', я не вижу, как он не мог получить доступ к свойству 'ajax'. Вы следите за '$ .ajax' из нескольких тестов? Если это так, вы восстанавливаете метод $ .ajax? – aymericbeaumet