Tôi không biết cách kiểm tra đơn vị Ngoại lệ với PHPUnit.Làm thế nào để kiểm thử đơn vị Ngoại lệ với PHPUnit?
Hãy xem phương pháp của tôi với Ngoại lệ:
public function getPhone($html, $tag = 'OFF', $indicative, $number_lenght) {
// .. code
if ($tag <> 'OFF') {
$html = $doc[$tag]->text(); // Apanho apenas o texto dentro da TAG
if (empty($html)) {
throw new Exception("Nao foi possivel apanhar qualquer texto dentro da TAG, Metodo em causa: getPhone()");
}
}
// .. code
}
Và bây giờ thử nghiệm PHPUnit tôi:
<?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
* @expectedException Exception
*
*/
public function testGetPhone() {
// Variables1
$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 protected]<br />218559372 | 927 555 929 | <br />RH<br />Rua C. Sal. 40<br />1000-000 Lisboa<br /><br /><br />+351 21 3456789 | (351) 912345678';
// Variables2
$array_static2 = Array(0 => 'NA');
$phone_list2 = "";
// .. more tests
// Test Exception, Tag not found
if (TRUE) {
// Bloco try/catch para confirmar que aqui lança excepção
try {
$this->scrap->getPhone($phone_list1, 'hr', '351', '9');
}
catch (Exception $expected) {
return;
}
$this->fail('An expected exception has not been raised.');
}
}
}
?>
Nếu tôi chạy thử nghiệm tôi đã "Failure":
1) ScrapTest::testGetPhone
Expected exception Exception
FAILURES!
Tests: 1, Assertions: 5, Failures: 1.
Ngoại lệ tăng lên nhưng tôi không muốn thất bại trong PHPUnit, Nếu ngoại lệ tăng lên, tôi muốn kiểm tra OK.
Bạn có thể cho tôi một số manh mối không?
Trân trọng,
bản sao có thể có của [Cách sử dụng setExpectedException của PHPUnit()?] (Http://stackoverflow.com/questions/4646298/how-to-use-phpunits-setexpectedexception) – zerkms
được hỏi chỉ một vài phút trước – Gordon