もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

phpunit組み込みのmockライブラリprophecyは非推奨になっていた

はじめに

こんばんは。

よく現場でも prophecy つかってたのですが、今の現場では phpunit7とかを触っていまして、最新版のphpunitを触っていませんでした。

今日偶然テスト系の調べ物していて、最新版のphpunitを触って気づきました...

ちなみにバージョンは 以下です。

$ ./vendor/bin/phpunit --version
PHPUnit 9.4.3 by Sebastian Bergmann and contributors.

本題

最新版のphpunitで prophecyを使用しているテストコードを回してみると以下の警告が出ました。

1) ExampleTest::register
PHPUnit\Framework\TestCase::prophesize() is deprecated and will be removed in PHPUnit 10. Please use the trait provided by phpspec/prophecy-phpunit.

v9では非推奨で、かつ、v10では削除されるとのこと...

v10で削除される旨は、phpunitChangeLogにも記載がありました。

github.com

f:id:kojirooooocks:20210227030133p:plain

issueはこちら

github.com

github.com

v9以降も使い続けるには、別途 phpspec/prophecy-phpunit を使用するとのこと。

使用方法は以下

  1. composer require --dev phpspec/prophecy-phpunit でライブラリをインストール
  2. prophesize() を使用しているテストコードで、 ProphecyTrait をuseする

これで、v9以降も通常通り prophecy が使用できます。

終わりに

最新版触ってないとどんどん置いて行かれているなと思い、ゾッとしました...

現場からは以上です。