【问题标题】:Convert from SimpleTest to PHPUnit $this->UnitTestCase('message .....');从 SimpleTest 转换为 PHPUnit $this->UnitTestCase('message .....');
【发布时间】:2010-08-24 12:49:00
【问题描述】:

PHPUnit 中的哪个动作/方法等于 simpleTest 中的:

$this->UnitTestCase('message .....')

编辑:抱歉我的错误


我认为我所询问的内容不直接存在于简单测试中,它只是我们的扩展类。

但是这个方法在测试开始时会显示消息——它是如何用 PHPUnit 完成的?

谢谢

【问题讨论】:

  • 我检查了文档,但找不到那个方法(我看起来不是很努力)......我看到一个同名的类,但不是一个方法......什么可以吗?
  • @ircmaxell:我遇到了同样的麻烦,我最好的猜测是:simpletest.org/api/SimpleTest/UnitTester/…
  • @Tim,你不能用类名来调用__construct。你需要打电话给parent::__construct(我试过了)。因此,如果这是 $this 继承的类,那么就没有 UnitTestCase 方法(据我所知)......这才是这个问题真正令人费解的地方......
  • 有趣的是,它显示为here,但在UnitTestCaseSimpleTestCase 中都没有该名称的方法,它们也没有定义任何__call__invoke 魔术方法。
  • @ircmaxell 很好,谢谢。

标签: php phpunit simpletest


【解决方案1】:

我不是 SimpleTest 专家,但据我所知,这是 UnitTestCase 类的构造函数。 PHPUnit 中的等价物是 PHPUnit_Framework_TestCase;您可以通过子类化并定义测试方法来创建自己的测试。请参阅 the PHPUnit docs 编写测试以获取快速操作方法和更多信息,但简而言之,这是一个完整的 PHPUnit 测试:

class MyTest extends PHPUnit_Framework_TestCase {
    public function testSomething {
        $this->assertTrue(MyClass::getSomethingTrue());
    }
}

更新:回答修改后的问题,在 PHPUnit 中显示消息的主要方式是断言失败。每个assert* 函数最后都带有一个可选的$message 参数,当断言失败时,您可以使用它来显示自定义消息。

如果您想始终显示一条消息,而不必使断言失败,那么您可以尝试简单的print 语句。它将穿插在测试输出中,因此这可能不是完成您想要的最好(或最好看)的方式,但它肯定会将文本转储到控制台,这似乎是您所要求的。

如果您正在单元测试期间寻找一些高级调试,您可能还需要考虑某种日志框架(或者甚至只是一个打开文件、打印到文件并再次关闭文件的自定义函数)。这样,您可以保持测试输出的完整性,但在测试期间仍会在任何您想要的地方获得额外的自定义消息。

【讨论】:

    猜你喜欢
    • 2012-08-18
    • 2010-09-07
    • 2014-03-31
    • 2016-11-05
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    相关资源
    最近更新 更多