使用PhpUnit的最佳实践
我是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
<?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