使用PhpUnit的最佳实践

使用PhpUnit的最佳实践,phpunit,Phpunit,我是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 setU

我是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'));
    }
}
?>

我能做得比这更好吗?这是正确的做法吗

如果你能给我一些线索,我将不胜感激

致以最诚挚的问候,

在本例中,我将使用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'));
}
公共函数getTextsAndPhones(){
返回数组(
排列(
'前段

(…)
+351213456789 |(351)912345678', 数组(0=>218559372,1=>927555929,2=>213456789,3=>912345678), ), ); } /** *@dataProvider getTextsAndPhones */ 公共函数testGetPhone($text,$phones){ $this->assertEquals($phones,$this->scrap->getPhone($text,'351','9')); }
当然,您也可以在数据提供程序中包含“351”和“9”参数。

我将使用file\u get\u内容从文件加载fixture(将被注入的HTML)。有一个很长的HTML字符串有点乱

此外,拥有清晰的变量名也很方便。在您的情况下,$array\u static1可以重命名为$expected\u phone\u numbers