четверг, 23 ноября 2017 г.

Сниппет для упрощения работы с Codeceptjs

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

/**
 * Общие функции для выполнения
 * тестов codeceptjs
 */
var test_common = function (_basePage) {
    // private
    var login = 'example@exmaple.com',
        loginField = 'email',
        pass = '123456',
        basePage = _basePage,
        loginBtnSeletor = '.login',
        loginUrl = '/login',
        passField = 'password';


    // public
    return {
        // login throw login form
        login: function (I) {
            I.amOnPage(this.getBasePage() + this.getLoginUrl());
            I.fillField(this.getPassField(), this.getPass());
            I.fillField(this.getLoginField(), this.getLogin());
            I.click(this.getLoginBtnSelector());
        },


        // accessors
        setLogin: function (_login) {
            login = _login;
        },
        getLogin: function () {
            return login;
        },
        setPass: function (_pass) {
            pass = _pass;
        },
        getPass: function () {
            return pass;
        },
        setLoginField: function (_fieldName) {
            loginField = _fieldName;
        },
        getLoginField: function () {
            return loginField;
        },
        setPassField: function (_fieldName) {
            passField = _fieldName;
        },
        getPassField: function () {
            return passField;
        },
        setBasePage: function (_basePage) {
            basePage = _basePage;
        },
        getBasePage: function () {
            return basePage;
        },
        setLoginBtnSelector: function (btnSelector) {
            loginBtnSeletor = btnSelector;
        },
        getLoginBtnSelector: function () {
            return loginBtnSeletor;
        },
        setLoginUrl: function (_loginUrl) {
            loginUrl = _loginUrl;
        },
        getLoginUrl: function () {
            return loginUrl;
        }
    };
};
module.exports = test_common;
 
Этот снипет я сохраняю в файл test_common.js и исполюзую этот файл во всех своих тестах вот таким образом.

var common = require('./test_common')('http://local.naimi');
common.setPassField('_password');
common.setLoginField('_username');
common.setLogin('rd@example.com');
common.setPass('123456');
common.setLoginUrl('/login');
common.setLoginBtnSelector('.btn-orange');

Залогиниться можно внутри теста вот так

Scenario('RD scenario', (I) => {
    common.login(I);
    I.see('Я залогинен');
});

Комментариев нет:

Отправить комментарий

Рабочий способо убрать хрип микрофона в Ubuntu 18.04

Переходим по ссылке и делаем также как в видео https://www.reddit.com/r/Ubuntu/comments/6zq3ca/remove_background_noise_on_the_mic_in_ubun...