Wie verwenden von PHPUnit ist setExpectedException()?

Mit PHPUnit kann ich erfolgreich testen, wenn ein bestimmter Anruf an ein richtig Klasse löst eine exception aus, wie diese:

try 
{
    $dummy = Import_Driver_Excel::get_file_type_from_file_name('BAD_NAME.nnn');   
}
catch (Exception $ex) 
{
    return;
}
$this->fail("Import_Driver_Excel::get_file_type_from_file_name() does not properly throw an exception");

Aber ich lese hier, dass es eine einfacher Weise, im Grunde in einer Linie mit setExpectedException():

class ExceptionTest extends PHPUnit_Framework_TestCase
{
    public function testException()
    {
        $this->setExpectedException('InvalidArgumentException');
    }
}

Aber wie bekomme ich es auf der Arbeit so wie im obigen Beispiel, D. H. ich will, um zu testen, ob die Klasse wirft diese Ausnahme nur wenn ich den Aufruf mit 'BAD_NAME.nnn'? Diese Varianten funktionieren nicht:

$dummy = Import_Driver_Excel::get_file_type_from_file_name('BAD_NAME.nnn');  
$this->setExpectedException('Exception');

noch dies:

$this->setExpectedException('Exception');
$dummy = Import_Driver_Excel::get_file_type_from_file_name('BAD_NAME.nnn'); 

Wie verwende ich setExpectedException() zu ersetzen mein Beispiel oben?

  • Dein zweites Beispiel das richtige ist. Können Sie darauf hinweisen, was nicht funktioniert.
  • $this->setExpectedException('Exception'); throw new Exception(); -- was ist, wenn Sie ausführen dieses code?
  • Es funktioniert in der Tat wie im zweiten Beispiel, danke.
  • gut, befolgen Sie diese Vorlage dann: a) Erwartungen b) ausführen von test-Methoden, c) den GEWINN!!!1 😉
  • Sie konnte die Bemerkung annotation auch. phpunit.de/manual/current/en/...
Schreibe einen Kommentar