【问题标题】:I would like to test a php method xy which have php function die(), how can I do this? [duplicate]我想测试一个具有 php 函数 die() 的 php 方法 xy,我该怎么做? [复制]
【发布时间】:2013-11-26 07:23:31
【问题描述】:

我有这样的方法:

public function xy()
{
 die('script was terminated.')
}

是否可以用 phpUnit 测试这个方法?

【问题讨论】:

  • 可能不会(很容易)。 PHPUnit 将无法将该方法的 die() 与真正的 die() 区分开来,并且只能区分 die()。
  • 相反,您需要将 die() 包装在其他一些函数中,如果在测试中运行该函数会采取不同的操作。
  • 如果你的函数“xy”只是做一个 die(),那么我会简单地创建一个 mock,然后我会断言是否调用了该函数。

标签: php unit-testing phpunit


【解决方案1】:

这可以通过重载 die() 函数来实现。此处描述了如何执行此操作: Intercepting the Exit Statement

只调用它是不可能的,因为只有一个 PHPUnit 进程,你会通过调用 die() 或 exit() 来杀死它。

也看看这个问题的答案: How do you use PHPUnit to test a function if that function is supposed to kill PHP?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多