将PHPUnit从4.8升级到5.5

时间:2016-08-22 18:46:35

标签: php unit-testing phpunit

我们将系统升级到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,这看起来效果不同以至于全局查找/替换不会削减它?

2 个答案:

答案 0 :(得分:5)

你可以创建一个名为TestAdapter的额外测试类,它将扩展PHPUnit_Framework_TestCase

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

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

答案 1 :(得分:0)

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

  

->getMock\(([^)]+)\)替换为->getMockBuilder($1)->getMock()

希望有帮助