【问题标题】:PHPUnit: continue after die, expect "die" or somehow handle die()? [duplicate]PHPUnit:死后继续,期待“死”或以某种方式处理死()? [复制]
【发布时间】:2011-03-31 01:50:21
【问题描述】:

可能重复:
How do you use PHPUnit to test a function if that function is supposed to kill PHP?

我正在编写一些单元测试。我目前正在测试的系统是 MVC 框架中的 Web 应用。

如果我们想在没有站点皮肤系统的情况下呈现页面,我们通常会像往常一样运行我们的代码,但会打印一个“die();”函数末尾的语句在网站的其余部分呈现之前退出。

现在我们正在添加单元测试,这似乎是一个问题。你看,当你 DIE();在 MVC 中,这似乎向 PHPUnit 发送了相同的消息。

Grrrr...代码现在已呈现“不可测试”

有吗?

一个人如何计划一个 die();在 PHPUnit 中?

我知道在测试之前添加这个:

/**
 * @expectedException PHPUnit_Framework_Error
 */

但它不允许我测试“死亡时”的变量(至少我不这么认为)

有大神能指点一下吗?

谢谢! :D

【问题讨论】:

    标签: php unit-testing error-handling phpunit expected-exception


    【解决方案1】:

    在这种情况下,您只需要使用return 而不是die。应该很容易将所有死亡替换为 IDE 中的返回。

    真正的问题是,当您真的需要测试 exitdie 返回的应用程序退出代码时(请参阅 edorian 的回答)。

    【讨论】:

    • +1,在大多数(几乎所有)情况下,最好在应用程序中使用 return 而不是 die。
    • 一个你别无选择的好例子是你的代码在哪里被其他框架执行,这需要你的代码死才能实现你需要的。例如,几个如果您想阻止 WordPress 在您的代码之后进行任何进一步的处理,WordPress 挂钩具有此功能:(
    猜你喜欢
    • 2020-10-04
    • 1970-01-01
    • 2023-03-17
    • 2016-12-22
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    相关资源
    最近更新 更多