簡體   English   中英

如何使用PHPUnit的setExpectedException()?

[英]How to use PHPUnit's setExpectedException()?

使用PHPUnit,我可以成功測試對類的特定調用是否正確拋出如下異常:

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");

但我在這里讀到有一種更簡單的方法 ,基本上在一行中使用setExpectedException()

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

但是我如何讓它像上面的例子一樣工作,即我想測試只有當我使用'BAD_NAME.nnn'進行特定調用時 ,類才會拋出此異常 這些變體不起作用:

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

也不是這樣

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

如何使用setExpectedException()替換上面的工作示例?

您可以使用expectedException批注

class ExceptionTest extends PHPUnit_Framework_TestCase
{
    /**
     * @expectedException InvalidArgumentException
     */
    public function testException()
    {
        $dummy = Import_Driver_Excel::get_file_type_from_file_name('BAD_NAME.nnn');

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM