将 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()
希望对您有所帮助
我们将系统升级到 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()
希望对您有所帮助