Повторное использование сценария тестирования E2E в нескольких сценариях

У меня есть приложение, в котором я хочу реализовать несколько сценариев тестирования E2E, каждый из которых относится к разделу приложения. Проблема в том, что мое приложение требует авторизации. Я создал сценарий входа, все работает нормально. Для описания другого сценария мне нужно иметь возможность повторно использовать код для входа в систему. Как я могу это сделать?

describe('login page flow', function () {
    it('should open the login page', function () {
        browser().navigateTo('/#/login');
        sleep(1);
        expect(browser().window().hash()).toBe('/login');
    });

    it('should have login elements', function () {
        expect(element('#username').count()).toBe(1);
        expect(element('#password').count()).toBe(1);
    });           

    it('should be able to login successfully', function () {
        input('ui.username').enter('user');
        input('ui.password').enter('pass');

        element('#signin').click();
        sleep(1);
        expect(browser().window().hash()).toBe('/welcome/');
    });
});

Единственное, что я мог придумать, это написать это в beforeEach, но я не думаю, что это вполне чистое решение. Любые идеи?


person Adrian Marinica    schedule 22.10.2013    source источник


Ответы (1)


Я думаю, что beforeEach() идеальное место для этого.

Кроме того, вы можете создать свой собственный фрагмент страницы, например.

function homePage()
{
    return {
        loginForm: {
            email: input("credentials.email"),
            password: input("credentials.password"),
            login: element("#login-form button[type=submit]")
        }
    };
}

и повторно используйте его следующим образом:

      describe("and user logs in", function ()
            {
                describe("successfully", function ()
                {
                    beforeEach(function ()
                    {                        
                        homePage().loginForm.email.enter("username");
                        homePage().loginForm.password.enter("password");
                        homePage().loginForm.login().click();
                    });
      ...

Здесь вы можете прочитать об идее фрагменты страницы.

person Piotr Kozlowski    schedule 06.02.2014