【问题标题】:Unit test exception-messages formatted with sprintf使用 sprintf 格式化的单元测试异常消息
【发布时间】:2013-05-16 20:21:30
【问题描述】:

当我像这样格式化错误消息时,如何测试异常是否引发预期的错误消息:

throw new \Exception(sprintf('Random string: "%s".', 'blablabla'));

显然用 $this->assertEquals() 进行测试是行不通的,因为我不知道 %s 会是什么。是否有直接的方法来测试使用 sprintf 的异常消息?

【问题讨论】:

  • 你为什么不知道'%s' 的值是什么?我认为这是测试的目的之一,以受控方式触发代码的某些部分?为什么你不能让你的代码以你希望它引发的方式引发一个特定的异常,然后你可以断言消息等于你的预期?
  • @dm03514:这是漫长的一天......显然这是正确的方法。如果您将其作为一个答案发布,我会将其作为答案。
  • 为什么不将异常扩展为RandomStringException? :)
  • @OneTrickPony:我以“随机字符串”为例。正如 dm03514 已经提到的,我实际上应该知道每个单独的测试 %s 将是什么。还是)感谢你的建议!它可能会帮助其他人。

标签: php exception phpunit


【解决方案1】:

我相信你应该知道'%s' 会是什么,通过以可控的方式触发你想要异常的代码部分。

您可以触发您期望的异常,然后您可以使用assertEquals 与您期望触发的错误消息

【讨论】:

    猜你喜欢
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    相关资源
    最近更新 更多