CakePHP 5 では、PHPUnit の最低バージョンが ^8.5 || ^9.3
から ^10.1
に変更されました。
この文書は、PHPUnit や CakePHP 由来の、いくつかの破壊的変更を紹介するものです。
PHPUnitの設定ファイルを、以下のコマンドで更新することが推奨されます:
vendor/bin/phpunit --migrate-configuration
注釈
上記のコマンドを実行する前に、 vendor/bin/phpunit --version
を実行して PHPUnit 10 が実行されていることを確認して下さい。
このコマンド(訳注 : vendor/bin/phpunit --migrate-configuration
のこと)を実行することによって、お手元のプロジェクトの phpunit.xml
ファイルには推奨される変更が適用された状態になります。
PHPUnit 10 は、古い hook の仕組みを削除した上で、新しい イベントシステム が導入されました。
ここでは、以下に示すような phpunit.xml
は…:
<extensions>
<extension class="Cake\TestSuite\Fixture\PHPUnitExtension"/>
</extensions>
次のように調整されます:
<extensions>
<bootstrap class="Cake\TestSuite\Fixture\Extension\PHPUnitExtension"/>
</extensions>
->withConsecutive()
の削除¶削除されたメソッド ->withConsecutive()
は、応急措置的に置き換え可能です。例えば以下のコードは:
->withConsecutive(['firstCallArg'], ['secondCallArg'])
次のように置き換えられます:
->with(
...self::withConsecutive(['firstCallArg'], ['secondCallArg'])
)
Cake\TestSuite\TestCase
クラスには、 Cake\TestSuite\PHPUnitConsecutiveTrait
経由で、静的メソッド self::withConsecutive()
が追加されました。なので、Testcase のクラスに手動で trait を仕込む必要はありません。
お手元のプロジェクトのテストケースにおいて、PHPUnitの data provider 機能を活用している場合、それを static にする必要があります。例えば以下のコードは:
public function myProvider(): array
次のように置き換えて下さい:
public static function myProvider(): array