Phpunit: 7.2.5 casse BC !

Créé le 21 juin 2018  ·  4Commentaires  ·  Source: sebastianbergmann/phpunit

| Q | UNE
| --------------------| ---------------
| Version PHPUnit | 7.2.5
| Version PHP | 7.1, par exemple
| Méthode d'installation | Compositeur, mais peu importe

nouvelle version 7.2.5 brise BC :
https://github.com/sebastianbergmann/phpunit/commit/bcb4c788c7872cd2f885ccf50285f6feb7cfff1a#diff -9ae7a972d07df5f73629d5d315bf405aR521

déclaration formelle de méthode modifiée :

-    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

pour cela, mon intégration plante sur des entêtes de méthode incompatibles :
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

Commentaire le plus utile

Je vais les faire final dans PHPUnit 8 alors :-)

Tous les 4 commentaires

Pourquoi les gens écrasent les assertions de PHPUnit ? soupir

histoire courte? car ils ne sont pas marqués comme définitifs

longue histoire? vide https://github.com/PHPUnitGoodPractices/Traits/blob/master/src/IdentityOverEqualityTrait.php#L46 -L56 pour mon cas concret

Je vais les faire final dans PHPUnit 8 alors :-)

Alors, pouvons-nous d'abord sortir du sujet mort de l'enregistrement des affirmations/attentes ? On peut donc décider d'avoir des assertions supplémentaires disponibles globalement (sans importation manuelle dans chaque test) ou de ne pas enregistrer toutes celles intégrées ?
Mais en général, :+1: pour les méthodes/classes/interfaces d'exposition finales sur des implémentations concrètes

Aussi, permettez-moi de demander ceci une fois de plus ;) s'il vous plaît, commençons à utiliser la balise @internal pour des choses hors de la promesse BC, qui ne doivent pas être utilisées hors de cette bibliothèque.
(Par exemple, je peux préparer des relations publiques qui rendraient tout marqué en interne, puis nous ouvririons ce qui sera public)

Cette page vous a été utile?
0 / 5 - 0 notes