Тестирование: Архитектура тестов

Тесты состоят из 2х слоев:
Тесты (набор исполняемых методов в нужной последовательности)
Исполняемый код (page pattern)

Структура тестов:

use GsTest\LisOrders\RegistrationPatient\AttachPatientToLabOrder;
use GsTest\MainPage\Kontragent\CheckKontragent;
use GsTest\MainPage\Login\LoginStaff;
...
class Reg777LisTest 
{
  /**
     * @var AttachPatientToLabOrder
     */
    private $attachPatientToLabOrder;
    /**
     * @var CheckKontragent
     */
    private $checkKontragent;
    /**
     * @var LoginStaff
     */
    private $loginStaff;

    public function setUp()
    {
        parent::setUp();
        $this->attachPatientToLabOrder = new AttachPatientToLabOrder();
        $this->checkKontragent = new CheckKontragent();
        $this->loginStaff= new LoginStaff();
    }

    public function testLisReg777()
    {
        $stack = [];
        $this->assertEquals(0, count($stack));
        //Переменные
        $url_site = "http://master.gemosystem-test/index.php";
        $username = "reg777";
        $user_password = "27bbd9";
        $select_kontragent = "ДУП учебный класс";
        $kkm = '12344321';
        //Переход на тестируемую страницу
        $this->webDriver->get($url_site);
        //логин
        $this->loginStaff->loginPage($username, $user_password);
        $this->checkKontragent->select_kotragent($select_kontragent);
        $this->attachPatientToLabOrder->testAttachPatientToLabOrder();
    }
}

 

Структура тестовых методов:


<?php

namespace GsTest\MainPage\Login;

use Facebook\WebDriver\WebDriverBy;
use GsTest\Helper\TestHelper;

class LoginStaff extends TestHelper
{
    public function loginPage($username, $user_password)
    {
        $this->webDriver->findElement(WebDriverBy::id("urAuth"))->click();
        $this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_username"))->click();
        $this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_username"))->clear();
        $this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_username"))->sendKeys("{$username}");
        $this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_password"))->click();
        $this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_password"))->clear();
        $this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_password"))->sendKeys("{$user_password}");
        $this->webDriver->findElement(WebDriverBy::id("submitBtn"))->click();
    }
}

 

Архитектура родителя тестовых методов:

<?php

namespace GsTest\Helper;

use Facebook\WebDriver\Remote\RemoteWebDriver;

class TestHelper
{
    /**
     * @var RemoteWebDriver
     */
    protected $webDriver;

    public function __construct()
    {
        $this->webDriver = $GLOBALS['webDriver'];
    }
}

25.11.2010 13:26

Комментарии

Комментариев пока нет.


Copyrights © 2007 - 2026 YaPro.Ru