久しぶりにCakePHP3のバージョンアップをcomposer updateでしたら(3.2.10→3.3.11)、テストにwarningが…。
どうやらCakePHPのバージョンアップというより、PHPUnitのバージョンアップによるものらしい。
PHPUnitは5.3.4から5.7.5にバージョンアップされていました。
PHPUnit_Framework_TestCase::getMock() is deprecated, use PHPUnit_Framework_TestCase::createMock() or PHPUnit_Framework_TestCase::getMockBuilder() instead
というのがいっぱい出ているので、PHPUnitのドキュメント見てみたら、createMock()
とgetMockBuilder()
の記述がありました。
というわけで該当箇所を直します。
createMock()を使う
$this->io = $this->getMock('Cake\Console\ConsoleIo');
のようにgetMock()
を使っていたところは、
$this->io = $this->createMock('Cake\Console\ConsoleIo');
のようにcreateMock()
に変更します。
getMockBuilder()を使う
$controller = $this->getMock('App\Controller\MiscController', ['setMaster']);
のようにメソッドを指定してgetMock()
を使っていたところは、
$controller = $this->getMockBuilder('App\Controller\MiscController')
->setMethods(['setMaster'])
->getMock();
のようにgetMockBuilder()
を使うように変更します。
無事にwarning出なくなりました。
PHPUnitの過去のバージョンのドキュメントをちょっと見てみたら、どうも4からgetMockBuilder()
を使うようになってたようですね。
$this->getMock()
と書いていたのは3の時代だったようです…