Phpunit: 7.2.5 BCを破る!

作成日 2018年06月21日  ·  4コメント  ·  ソース: sebastianbergmann/phpunit

| Q | NS
| -------------------- | ---------------
| PHPUnitバージョン| 7.2.5
| PHPバージョン| 7.1、例えば
| インストール方法| 作曲家、しかし関係ありません

新しくリリースされた7.2.5はBCを破ります:
https://github.com/sebastianbergmann/phpunit/commit/bcb4c788c7872cd2f885ccf50285f6feb7cfff1a#diff -9ae7a972d07df5f73629d5d315bf405aR521

メソッドの正式な宣言が変更されました:

-    public static function assertNotEquals($expected, $actual, string $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false): void
+    public static function assertNotEquals($expected, $actual, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void

そのため、互換性のないメソッドヘッダーで統合がクラッシュします。
https://travis-ci.org/FriendsOfPHP/PHP-CS-Fixer/jobs/394945074#L655

PHP Fatal error:  Uncaught Declaration of
PHPUnitGoodPractices\Traits\IdentityOverEqualityTrait::assertNotEquals($expected, $actual, string $message = '', $delta = 0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false): void
should be compatible with
PHPUnit\Framework\Assert::assertNotEquals($expected, $actual, string $message = '', float $delta = 0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void

最も参考になるコメント

PHPUnit 8でfinalします:-)

全てのコメント4件

なぜ人々はPHPUnitのアサーションを上書きするのですか? はぁ

ショートストーリー? 最終としてマークされていないため

長い話? 具体的なケースについては、 https: //github.com/PHPUnitGoodPractices/Traits/blob/master/src/IdentityOverEqualityTrait.php#L46-L56を

PHPUnit 8でfinalします:-)

それでは、最初にアサーション/期待を登録するという死んだトピックから持ち込むことができますか? したがって、いくつかの追加のアサーションをグローバルに利用できるようにするか(すべてのテストで手動でインポートせずに)、すべての組み込みアサーションを登録しないかを決定できますか?
しかし、一般的に、:+ 1:具体的な実装上の最終的なメソッド/クラス/公開インターフェース用

また、これをもう一度リクエストさせてください;)BCの約束から外れたものに@internalタグを使い始めましょう。これは、このライブラリからは使用できません。
(たとえば、すべてを内部としてマークするPRを準備してから、公開するものを公開します)

このページは役に立ちましたか?
0 / 5 - 0 評価