我想绕过die或类似的PHPUnit测试用例。我有一个只有一个公共方法 start()的类,该方法立即被调用,并且检查请求是否可取。如果不是,则从脚本中执行退出并显示消息。我想测试该课程,但是我得到了睡眠脚本小子!这对我来说完全可以理解。
我很累使用 new ReflectionClass()进行类的反射,但是没有效果。总是以上述退出消息结束。
开始()
public function start()
{
if(!$this->isDesirable()) $this->stop('go sleep script kiddies!');
$this->setDebugMode();
$this->validateVirtualHostName();
$this->validateOperatingSystem();
if($this->operatingSystem && $this->virtualHostName){
$this->exec();
}
$this->setSessionStatus();
$this->goBack();
}
停止()
private function stop($message = '')
{
exit($message);
}
setSessionStatus()
private function setSessionStatus()
{
session_start();
$_SESSION['status'] = $this->status;
}
getMethod()
protected static function getMethod($name)
{
$class = new ReflectionClass(new VHManager());
$method = $class->getMethod($name);
$method->setAccessible(true);
return $method;
}
testSetterSessionStatus()
public function testSetterSessionStatus()
{
$setSessionStatus = self::getMethod('setSessionStatus');
$this->assertTrue(isset($_SESSION['status']));
}
我希望测试通过,但实际是:
Process finished with exit code 0
go sleep script kiddies!