對 PHP 錯誤進行測試
在還沒有異常機制之前, PHP 是利用錯誤處理機制來管理程式的錯誤。一般來說,我們不太可能去預期程式所出現的錯誤,而是在發生錯誤前用預防機制處理掉。
但如果知道某段程式可能引發 PHP 錯誤時, PHPUnit 也可以處理。
PHP 錯誤測試
PHPUnit 會將 PHP 錯誤包裝成異常,所以我們可以直接利用 @expectedException
註記,搭配 PHPUnit_Framework_Error
類別來測試程式是否會產生 PHP 錯誤。
<?php
class ErrorTest extends PHPUnit_Framework_TestCase
{
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFileWriting()
{
$this->assertFalse(file_put_contents('/is-not-writeable/file', 'stuff'));
}
}
另外 PHPUnit_Framework_Error_Notice
和 PHPUnit_Framework_Error_Warning
分別代表 PHP 通知與 PHP 警告。
官方手冊參考
練習
- 試著找出
PHPUnit_Framework_Error_Notice
和PHPUnit_Framework_Error_Warning
的應用實例。