s平面の左側

左側なので安定してます(制御工学の話は出てきません)

PHPUnit を 8 系にアップグレードしたときのメモ

基底クラス PHPUnit\Framework\TestCase の一部メソッドの型が変わっている

テストを実行すると以下のエラーが発生した。

Fatal error: Declaration of xxx\xxxTest::setUpBeforeClass() must be compatible with PHPUnit\Framework\TestCase::setUpBeforeClass()

戻り値の型宣言 : void をつければ勝ち。

<?php

// 中略

-     public static function setUpBeforeClass()
+     public static function setUpBeforeClass(): void
      {
          // 略
      }

-     public static function tearDownAfterClass()
+     public static function tearDownAfterClass(): void
      {
          // 略
      }

// 以下略

expectedException 系アノテーションが deprecated に

Error ではなく Warning。

The @expectedException, @expectedExceptionCode, @expectedExceptionMessage, and @expectedExceptionMessageRegExp annotations are deprecated. They will be removed in PHPUnit 9. Refactor your test to use expectException(), expectExceptionCode(), expectExceptionMessage(), or expectExceptionMessageRegExp() instead.

expectedException 系がアノテーションからメソッドになり、アノテーションは 9 系で廃止される。

書き方は以下を参考に。

phpunit.readthedocs.io

<?php

use xxx\MyException;

// 中略

      /**
-      * @expectedException \xxx\MyException
       */
      public static function testHoge()
      {
+         $this->expectException(MyException::class);

          // 以下略