Phpunit 面对setMethods()的弃用,重写测试类的权威指南在哪里?

Phpunit 面对setMethods()的弃用,重写测试类的权威指南在哪里?,phpunit,Phpunit,MockBuilder::setMethods()method在8.3中被弃用,但文档中的示例仍然使用它,我在任何地方都找不到明确的迁移指南。有人存在吗 出于对您可能花在编写答案上的时间的尊重:归结为“继续使用setMethods(),它仍然有效”的答案将不被接受。setMethods()自今已被弃用 目前,文档已经过时,但我想它们很快就会被修复。要回答您关于setMethods的问题,它已被两个新函数替换 唯一方法 添加方法 示例 旧代码可能是这样的 $merchant = $this

MockBuilder::setMethods()
method在8.3中被弃用,但文档中的示例仍然使用它,我在任何地方都找不到明确的迁移指南。有人存在吗

出于对您可能花在编写答案上的时间的尊重:归结为“继续使用
setMethods()
,它仍然有效”的答案将不被接受。

setMethods()
自今已被弃用

目前,文档已经过时,但我想它们很快就会被修复。要回答您关于
setMethods
的问题,它已被两个新函数替换

  • 唯一方法
  • 添加方法
示例

旧代码可能是这样的

$merchant = $this->getMockBuilder('\Fake\FakeMerchant')
    ->setMethods(['getLegalEntity'])
    ->getMock();
$merchant = $this->getMockBuilder('\Fake\FakeMerchant')
    ->addMethods(['getLegalEntity'])
    ->getMock();
现在应该是这样的

$merchant = $this->getMockBuilder('\Fake\FakeMerchant')
    ->setMethods(['getLegalEntity'])
    ->getMock();
$merchant = $this->getMockBuilder('\Fake\FakeMerchant')
    ->addMethods(['getLegalEntity'])
    ->getMock();
额外信息

我没有找到最终的迁移指南,但自从我最近 必须从旧的
phpunit 4.x
迁移到新的
phpunit 8.4
以下是您可以遵循的提示

  • PHPUnit\u Framework\u TestCase
    已替换为
    PHPUnit\Framework\TestCase
  • PHPUnit\u Framework\u MockObject\u MockObject
    已替换为
    PHPUnit\Framework\MockObject\MockObject
  • ->getMock
    已被删除。因此,替代方法是
    ->createMock()
    createPartialMock
    ->getMockBuilder()->getMock()
  • setUp
    setUpBeforeClass
    tearDown
    等函数现在需要定义
    ::void
    返回类型
  • mockObject->setMethods
    已被弃用,对于已经存在的方法,应将其替换为
    onlyMethod
    ;对于类上确实存在的方法,应将其替换为
    addMethods
  • docblock中的
    @expectedException
    已被弃用,并且
    $this->setExpectedException
    已被删除
setMethods()
从现在起已被弃用

目前,文档已经过时,但我想它们很快就会被修复。要回答您关于
setMethods
的问题,它已被两个新函数替换

  • 唯一方法
  • 添加方法
示例

旧代码可能是这样的

$merchant = $this->getMockBuilder('\Fake\FakeMerchant')
    ->setMethods(['getLegalEntity'])
    ->getMock();
$merchant = $this->getMockBuilder('\Fake\FakeMerchant')
    ->addMethods(['getLegalEntity'])
    ->getMock();
现在应该是这样的

$merchant = $this->getMockBuilder('\Fake\FakeMerchant')
    ->setMethods(['getLegalEntity'])
    ->getMock();
$merchant = $this->getMockBuilder('\Fake\FakeMerchant')
    ->addMethods(['getLegalEntity'])
    ->getMock();
额外信息

我没有找到最终的迁移指南,但自从我最近 必须从旧的
phpunit 4.x
迁移到新的
phpunit 8.4
以下是您可以遵循的提示

  • PHPUnit\u Framework\u TestCase
    已替换为
    PHPUnit\Framework\TestCase
  • PHPUnit\u Framework\u MockObject\u MockObject
    已替换为
    PHPUnit\Framework\MockObject\MockObject
  • ->getMock
    已被删除。因此,替代方法是
    ->createMock()
    createPartialMock
    ->getMockBuilder()->getMock()
  • setUp
    setUpBeforeClass
    tearDown
    等函数现在需要定义
    ::void
    返回类型
  • mockObject->setMethods
    已被弃用,对于已经存在的方法,应将其替换为
    onlyMethod
    ;对于类上确实存在的方法,应将其替换为
    addMethods
  • docblock中的
    @expectedException
    已被弃用,并且
    $this->setExpectedException
    已被删除