Лучшие практики использования PhpUnit - PullRequest
0 голосов
/ 07 января 2011

Я новичок в PhpUnit, и у меня есть некоторые сомнения по поводу лучших практик написания тестов.

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

<?php

require_once '../Scrap.php';

class ScrapTest extends PHPUnit_Framework_TestCase
{

    protected $scrap;

    // Setup function to instantiate de object to $this->scrap
    protected function setUp()
    {
        $this->scrap = new Scrap;
    }

    /**
    * @covers Scrap::getPhone
    *
    */
    public function testGetPhone() {

        // Variables
        $array_static1 = Array(0 => 218559372, 1 => 927555929, 2 => 213456789, 3 => 912345678);
        $phone_list1   = '</div>A Front para<br /><br /><br /><br /><br /><br />-Apoio;<br />-Criação;<br />-Campanhas;<br />-Promoções<br /><br /><br />CONDIÇÕES:<br /><br />Local de Trabalho: Es<br />Folgas: Mistas<br /><br /><br /><br />ordem 500€<br /><br /><br /><br />Mínimos:<br /><br />- Conhecimentos;<br />- Ensino ;<br />-INGLÊS.<br /><br /><br /><br />Candidaturas: <br />email@ffff.es<br />218559372 | 927 555 929 | <br />RH<br />Rua C. Sal. 40<br />1000-000 Lisboa<br /><br /><br />+351 21 3456789 | (351) 912345678';

        $this->assertEquals($array_static1, $this->scrap->getPhone($phone_list1, '351', '9'));
    }
}
?>

Могу ли я сделать лучше, чем это? Это правильный способ сделать это?

Если бы вы могли дать мне несколько подсказок, я был бы признателен.

С наилучшими пожеланиями,

Ответы [ 2 ]

0 голосов
/ 19 ноября 2013

Я бы загрузил прибор (HTML, который будет введен) из файла, используя file_get_contents.Это небольшая путаница с длинной строкой HTML.

Также удобно иметь четкие имена переменных.В вашем случае, $ array_static1 может быть переименован в $ Ожидаемый_phone_numbers.

0 голосов
/ 12 января 2011

Я бы использовал dataProvider функцию phpUnit в этом случае. Это позволит вам иметь простой, чистый тестовый набор и дополнительный метод с различными наборами тестовых данных.

Пример:

public function getTextsAndPhones() {
    return array(
        array(
           '</div>A Front para<br /><br />(...)<br />+351 21 3456789 | (351) 912345678',
            array(0 => 218559372, 1 => 927555929, 2 => 213456789, 3 => 912345678),
        ),
    );
}

/**
 * @dataProvider getTextsAndPhones
 */
public function testGetPhone( $text, $phones ) {
    $this->assertEquals($phones, $this->scrap->getPhone($text, '351', '9'));
}

Конечно, вы можете включить параметры «351» и «9» в провайдера данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...