将 PHPUnit 从 4.8 升级到 5.5

Upgrading PHPUnit from 4.8 to 5.5

我们将系统升级到 PHP7.0。 这要求我们将 PHPUnit 升级到 5.5,因为 4.8 不能正确支持 PHP7。 这会产生以下错误,导致我们 CI

中的 phpunit 失败
PHPUnit_Framework_TestCase::getMock() is deprecated,
use PHPUnit_Framework_TestCase::createMock() or
PHPUnit_Framework_TestCase::getMockBuilder() instead

现在看来,我们必须接触 1200 多个单元测试来重构我们构建模拟的方式。

有没有一种方法可以抑制该警告,或者快速将我们对 getMock 的使用转换为 createMock,这似乎与全局 find/replace 的工作方式不同'不剪吗?

您可以创建名为 TestAdapter 的额外测试 class,它将扩展 PHPUnit_Framework_TestCase

class TestAdapter extends PHPUnit_Framework_TestCase
{
    /**
    * Override your deprecated method
    */
    public function getMock()
    {
        return $this->createMock();
    }
}

然后你只需要从这个class扩展你所有的测试。

有同样的问题。我做了 运行 正则表达式替换以修复 getMock() 不推荐使用的条目。

->getMock\(([^)]+)\) replaced with ->getMockBuilder()->getMock()

希望对您有所帮助