2014-08-26 1 views
0

Я пытаюсь проверить, что 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 
    } 
}; 

Что-то не так с моей окружающей средой?

+0

Можете ли вы получить доступ к '$'? – aymericbeaumet

+0

Кажется, что spyOn() не имеет доступа к объекту окна и ajax $. Но следующая строка, использующая $ для эмуляции щелчка, хорошо работает. – mawr

+0

Если вы передаете '' 'ссылку на' spyOn', я не вижу, как он не мог получить доступ к свойству 'ajax'. Вы следите за '$ .ajax' из нескольких тестов? Если это так, вы восстанавливаете метод $ .ajax? – aymericbeaumet

ответ

2

Вы не можете шпионить за jQuery, потому что он определен в вашем браузере, а не в вашем тесте на транспортир. Тест вашего транспортира - это процесс узла, который выполняется за пределами браузера. Он использует протокол webdriver для связи с браузером.

Я бы порекомендовал вам написать единичный тест в карме для этого сценария.

+0

Так что я вообще не могу проверить ajax у транспортира? – mawr

+0

Вы можете утверждать, что текущий URL-адрес изменился после входа в систему. Вы также можете проверить, есть ли выход из системы. Что пользователь увидит после входа в систему? Это был бы хороший способ проверить. –