| Q | EIN
| --------------------| --------------
| PHPUnit-Version | 7.2.5
| PHP-Version | 7.1 zum Beispiel
| Installationsmethode | Komponist, aber egal
neu veröffentlichte 7.2.5 bricht BC:
https://github.com/sebastianbergmann/phpunit/commit/bcb4c788c7872cd2f885ccf50285f6feb7cfff1a#diff -9ae7a972d07df5f73629d5d315bf405aR521
formale Methodendeklaration geändert:
- 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
Dafür stürzt meine Integration bei inkompatiblen Methodenheadern ab:
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
Warum überschreiben Leute die Behauptungen von PHPUnit? Seufzen
Kurzgeschichte? weil sie nicht als final markiert sind
lange Geschichte? Vide https://github.com/PHPUnitGoodPractices/Traits/blob/master/src/IdentityOverEqualityTrait.php#L46 -L56 für meinen konkreten Fall
Ich werde sie dann in PHPUnit 8 zu final
:-)
Können wir dann zunächst vom toten Thema der Registrierung von Behauptungen/Erwartungen ausgehen? Man kann sich also entscheiden, einige zusätzliche Assertionen global verfügbar zu haben (ohne manuellen Import in jedem einzelnen Test) oder nicht alle integrierten zu registrieren?
Aber im Allgemeinen :+1: für endgültige Methoden/Klassen/das Offenlegen von Schnittstellen über konkrete Implementierungen
Lassen Sie mich dies auch noch einmal anfordern ;) Bitte lasst uns anfangen, @internal
Tags für Dinge zu verwenden, die aus dem BC-Versprechen stammen und nicht aus dieser Bibliothek heraus verwendet werden sollen.
(ZB kann ich eine PR vorbereiten, die alles als intern gekennzeichnet macht, und dann würden wir öffnen, was öffentlich sein soll)
Hilfreichster Kommentar
Ich werde sie dann in PHPUnit 8 zu
final
:-)