doctrine - 在单元测试模拟中抛出 \Doctrine\DBAL\Driver\DriverException
问题描述
编辑单元测试,我遇到了这个问题。我要测试的一段代码捕获了一个\Doctrine\DBAL\Exception\RetryableException
. 类链中的第一个构造函数是这样的,DriverException
并且是这样构建的:
/**
* @param string $message The exception message.
* @param \Doctrine\DBAL\Driver\DriverException $driverException The DBAL driver exception to chain.
*/
public function __construct($message, \Doctrine\DBAL\Driver\DriverException $driverException)
{
$exception = null;
if ($driverException instanceof Exception) {
$exception = $driverException;
}
parent::__construct($message, 0, $exception);
$this->driverException = $driverException;
}
我觉得我在这里遇到了鸡蛋和鸡肉的问题。我怎样才能实例化一个首先将自身实例作为强制参数的类?
解决方案
注意:我不会将此自动回复标记为解决方案,它更像是一种解决方法。
我没有在我的单元测试模拟中抛出正确的异常,而是创建了一个更简单的异常,扩展Exception
但仍实现原始接口RetryableException
,因为它是我正在测试的代码中捕获的接口。虽然不是我想做的,但在我的确切情况下它可以完成工作。
推荐阅读
- r - 用 R 创建一个按时间顺序排列的系列
- r - 如何根据日期列创建 gganimate scatteroplot?
- reactjs - 如何清除 Redux 商店中的输入值?
- python - 创建独特元素的特殊列表
- java - 如何从 AndroidStudio 中的 Java 代码访问 REST API localhost
- arrays - 从 Json 解析键值以构建数组
- python - 如何使用 Python 将字节更改为十六进制?
- php - wordpress 重写规则的问题
- node.js - 无法从工作区启动配置启动工作区定义的任务 [VS Code]
- javascript - 未捕获的 SyntaxError:对象 + 属性中的意外标记“)”