Phpunit: 7.2.5 bricht BC !

Erstellt am 21. Juni 2018  ·  4Kommentare  ·  Quelle: sebastianbergmann/phpunit

| 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

Hilfreichster Kommentar

Ich werde sie dann in PHPUnit 8 zu final :-)

Alle 4 Kommentare

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)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

sebastianbergmann picture sebastianbergmann  ·  4Kommentare

gellis picture gellis  ·  4Kommentare

sebastianbergmann picture sebastianbergmann  ·  4Kommentare

stephen-leavitt-sonyatv-com picture stephen-leavitt-sonyatv-com  ·  4Kommentare

dkarlovi picture dkarlovi  ·  3Kommentare