【发布时间】:2021-04-05 21:35:17
【问题描述】:
我需要测试我的应用程序日志是否写入了正确的数据(我知道在大多数情况下检查日志并不是很重要,但在这种特定情况下却非常重要)。
所以日志看起来像这样:
$this->logger->error(
'Invalid survey provided',
[
'exception' => $e,
'survey' => $survey
]
);
在规范中我有一个代码:
$exception = new ValidationException(
sprintf(
'Provided survey "%s" does not have all required fields %s',
json_encode($surveysResponse['result'][0]),
json_encode(Survey::$requiredFields)
)
);
$logger->error(
'Invalid survey provided',
[
'exception' => $exception,
'survey' => $surveysResponse['result'][0]
]
)->shouldBeCalled();
并且规范失败的 b-z 模拟不匹配,但我确信实际上记录了具有相同调查的相同错误消息和具有相同错误消息的异常。我无法告诉您确切的问题,因为错误输出很大且经过修剪。但我 90% 确定在比较异常对象时它会失败,因为异常不是完全相同的对象。
【问题讨论】:
-
用
-vvv运行它并显示失败的期望。谢谢。
标签: php unit-testing phpspec