【问题标题】:Testing for cakeError() being thrown测试 cakeError() 被抛出
【发布时间】:2011-04-20 09:22:21
【问题描述】:

我在 CakePHP 1.3 中使用单元测试。我的应用程序使用一个非常简单的 ErrorHandler 作为taught by the book。如果出现问题,我的一位模特会致电 $this->cakeError('myError')

现在我想要一个用于我的模型的测试用例,它检查是否 - 给出了错误的数据 - 错误处理程序是否被正确调用。

SimpleTest 提供expectError(),但这似乎是针对标准 PHP 错误的。 CakePHP 的错误处理是另一回事,但是这些错误不会被 expectError() 捕获。如果在测试中调用 cakeError(),则会呈现错误消息,而不是测试结果。

如何测试预期的 cakeErrors?

【问题讨论】:

    标签: testing cakephp error-handling simpletest


    【解决方案1】:

    您可能会使用部分模拟并模拟cakeError 方法。然后你可以使用expectOnce 断言cakeError 方法被调用。有关示例和进一步说明,请参阅documentation

    【讨论】:

    • 谢谢,这听起来像是要走的路。不过,以前从未遇到过模拟。在我创建了 Mock AppError 类之后,你知道我需要在哪里创建它的实例,所以 Cake 实际上使用它而不是原来的吗?
    • 我不会模拟 AppError 类,因为您无法轻松替换原始实例。相反,我会模拟模型的 cakeError() 方法。
    • 当然,太好了,这样就可以了。你介意更新你的答案,添加这个特定的信息吗?
    • 如果您正在寻找包含代码的完整示例,请访问:blog.deversus.com/2014/12/…
    猜你喜欢
    • 1970-01-01
    • 2019-11-26
    • 2018-04-12
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多