getMock() 在使用 HHVM 的 PHPUnit 测试中未定义

getMock() undefined in PHPUnit tests with HHVM

我们昨天将 PHP 单元更新为最新版本,并将所有调用从 getMock() 重命名为 createMock()

我们的单元测试在 PHP 5.6 和 PHP 7.0 中通过,但在 HHVM 中失败,我们得到以下错误:

Fatal error: Call to undefined method Gomoob\Pushwoosh\Client\CURLClientTest::createMock() in /home/travis/build/gomoob/php-pushwoosh/src/test/php/Gomoob/Pushwoosh/Client/CURLClientTest.php on line 33

您可以在 Travis 上看到完整的构建。

很奇怪,因为这是一个简单的call to a protected method declared inside a parent class (see the createMock() method here)。

您知道失败的原因吗?这可能是 HHVM 中的错误吗?

createMock() 方法是 introduced in PHPUnit 5.4.0. You use an older version on travis - 5.1.3. See https://travis-ci.org/gomoob/php-pushwoosh/jobs/142799864#L910

您为其他 PHP 版本构建的 use PHPUnit 5.4.6

这可能是您应该向 travis 报告的事情。您的另一个选择是通过 composer 安装 phpunit 作为开发依赖项。