Перейти к содержимому

aleesa

Регистрация: 23 мая 2013
Offline Активность: 14 мар 2016 06:09
-----

Мои сообщения

В теме: Тестирование с помощью PHPUnit: за и против?

28 июля 2014 - 07:51

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

Я не работаю с PHPUnit, поэтому найти готовый пример из жизни не могу, но вот ссылка на документацию:
http://phpunit.de/ma....data-providers

 

Большое спасибо! Теперь всё более-менее встало на свои места.)


В теме: Тестирование с помощью PHPUnit: за и против?

25 июля 2014 - 11:29

Спасибо, Алексей! )

Но не могли бы вы подсказать, как поступить в этом случае?

Обрабатывать каждое проверяемое значение в отдельной функции: testRegistrationNameCyrillic(), testRegistrationNameMin(), testRegistrationNameMax()? (тогда получается огромное дублирование кода).

Приведите пример, если не трудно.


В теме: Тестирование с помощью PHPUnit: за и против?

25 июля 2014 - 07:40

Будут вопросы - попробую помочь.

 

Посмотрите, пожалуйста, пример теста: 

<?php

class RegistrationTest extends WebTestCase
{
	public function testRegistrationPositiv()
	{
        $data = array(
        //Проверяем фамилию
            array(
                'lastname' => 'Кириллицаев',
            ),
            array(
                'lastname' => 'YDJDKJI',
            ),
            array(
                'lastname' => 'и',
            ),
            array(
                'lastname' => 'Кириллицаев123456789Кириллицаев1234567891234567890',
            ),

            //Проверяем email's
            array(
                'email' => time().'@2jfjf.wefjk'
            ),
            array(
                'email' => time().'kf.kfd.fkdfk@jf.jf.wefjk'
            ),
            array(
                'email' => time().'kf-fkdfk@jf-jf.wefjk'
            ),
            array(
                'email' => time().'kf_fkdfk@jf_jf.wefjk'
            ),
            array(
                'email' => time().'kfdfdfdsfs.dkfdfdsfsdfdfdsfdfk@jfdfdfdfdfdfdfdfdfdfdfjf.wfdsfsdffdfddfdefjk'
            ),
            //Проверяем пароль
            array(
                'password' => 'q'
            ),
            array(
                'password' => '123456789012345678901234567890'
            ),
            array(
                'password' => 'GLJIGIDFLGJFDG'
            ),

        );

        foreach($data as $item)
        {
            var_dump($item);
            $page = new MainPage($this,true);
            $page->clickRegistrationBtn();
            $phone = isset($item['phone']) ? $item['phone'] : time();
            $email = isset($item['email']) ? $item['email'] : $phone.'@tst.tst';
            $password = isset($item['password']) ? $item['password'] : '12345678';
            $lastname = isset($item['lastname']) ? $item['lastname'] : 'BabkinIO';
            $page->typeRegUserName($lastname);
            $page->typeUserPhone($phone);
            $page->typeUserEmail($email);
            $page->typeUserPassword($password);
            $page->clickRegSubmitBtn();
            sleep(2);
            $this->assertTextPresent('Регистрация прошла успешно!');
            $page->loginAs($email,$password);
            sleep(2);
            $this->assertTextPresent('Ваш адрес электронной почты');
        }


	}
}


Покритикуйте, пожалуйста. Допустимо ли вообще писать тесты в таком виде, или нужно использовать какую-то другую модель?

Суть в том, что различные позитивные данные попадают в одну и ту же функцию. Но возникает проблема: когда тест валится, во-первых, не понятно, на каких именно тестовых данных он завалился, во-вторых, на ошибке прекращается выполнение теста.


В теме: Тестирование с помощью PHPUnit: за и против?

02 июля 2014 - 11:24

Исправил ссылку (лишний пробел в конце). Можно было догадаться :)

 

Точно! ))


В теме: Тестирование с помощью PHPUnit: за и против?

02 июля 2014 - 07:03

https://github.com/s...e/master/Tests 

http://phpunit.de/ma...n/selenium.html

Своими поделиться не могу. Будут вопросы - попробую помочь.

 

Спасибо.

Только первая ссылка не открывается..