你会在php中测试自定义异常处理程序吗?例如,我有以下内容:
<?php
namespace Freya\Exceptions;
/**
* Custom exception handler.
*
* Instantiate with:
*
* <pre>
* new Freya\Exceptions\ExceptionHandler();
* </pre>
*
* This is a dependency in the Freya-Loader package and is instantiated for you in the constructor of the auto loader.
*
* @package Freya\Exceptions
*/
class ExceptionHandler {
/**
* Set up the exception handler.
*/
public function __construct() {
set_exception_handler(array($this, 'exceptionHandler'));
}
/**
* Create the exception handler.
*
* Start with the message that was produced. Then provide a stack trace.
*/
public function exceptionHandler($exception) {
echo $exception->getMessage();
echo '<br />';
echo '<pre> ' . $exception->getTraceAsString() . ' </pre>';
}
}
我想验证当抛出异常时,输出与exceptionHandler
函数匹配。我真的不确定我是否应该测试这门课程。
想法吗
答案 0 :(得分:3)
您可以通过抛出任意异常并手动验证输出来从技术上测试您的类。
通过将new Exception();
传递给ExceptionHandler
类并验证输出,可以对类进行自动化,可重复的测试。您可以通过调用$lastHandler = set_exception_handler(null);
来验证构造函数,以验证它是否是最后一个自定义处理程序。
从这两个测试中,您可以放心,PHP已经完成了自己的单元测试,以确保set_exception_handler
有效。