2015-01-29 2 views
1

Я использую транспортир для проверки моего углового приложения, где большинство просмотров доступно только для аутентифицированных пользователей.Как проверить угловые виды, доступные после входа?

В настоящее время, я поместил действие входа в beforeEach:

beforeEach(function() { 
    browser.get(site + '/account/login'); 
    element(by.id('Username')).sendKeys('testuser'); 
    element(by.id('Password')).sendKeys('letmein'); 
    element(by.css('[value="Log In"]')).click(); 
}); 

Проблема для каждого it('should....') теста, WebDriver посещает страницу входа в систему и выполняют ту же журнал в ритуале снова и снова.

Я предполагаю, что должен быть лучший способ сделать это. Как мы можем правильно настроиться, чтобы вход в webdriver только один раз, а затем выполнил все тесты it('should....')?

ответ

1

Это можно сделать с помощью поля конфигурационного файла транспортира onPrepare.

A example configuration file with login предоставляется в самом Транспортере.

onPrepare: function() { 
    browser.driver.get(env.baseUrl + '/login.html'); 

    browser.driver.findElement(by.id('username')).sendKeys('Jane'); 
    browser.driver.findElement(by.id('password')).sendKeys('1234'); 
    ... 

}

В качестве альтернативы, вы можете использовать тот факт, что жасмин тесты упорядочены. Таким образом, вместо входа в систему перед каждым тестом вы можете получить свой первый вход it.

Я обычно организую тесты на жасмин в более крупные апартаменты, с первым входом it и последним it.

Очевидным недостатком является то, что ваши тесты не являются полностью независимыми, но при выполнении обратного теста значительно быстрее. Вы даже можете утверждать, что выполнение нескольких действий после входа в систему более реалистично, чем запись и выключение для каждого действия.

Еще одно решение - использовать Jasmine 2.x beforeAll и afterAll обозначения (см. this answer). Это требует, чтобы вы использовали новейшую версию Protractor, так как до версии 1.5 Protractor работал только с Jasmine 1.x.

+1

Я не могу проверить несколько пользовательских ролей в разделе конфигурации 'onPrepare'. Итак, +1 для «Альтернативно». – Blaise

+1

FYI, в случае пакета Jasmine 1.x, ['jasmine-beforeAll'] (https://github.com/nonplus/jasmine-beforeAll). – alecxe