Aller au contenu

Tests

phil/money

Les tests de la bibliothèque

tests/Unit contient CurrencyTest, MoneyTest et SchemaOrgTest : les codes connus et refusés, la précision, les noms et les symboles localisés ; l'arithmétique et la comparaison dans une devise, et leur refus entre deux devises ; chaque dépassement, PHP_INT_MIN compris ; les décimaux lus et écrits pour des devises à 0, 2 et 3 décimales, jusqu'au plus grand montant ; les répartitions avec restes, égalités, proportions nulles et montants négatifs ; le MonetaryAmount et le prix d'Offer de schema.org, les décimales étant gardées sous forme de texte.

Depuis la racine du monodépôt :

vendor/bin/phpunit packages/money/tests

Installée seule :

composer install
vendor/bin/phpunit --no-configuration tests

Les tests de mutation tiennent la bibliothèque au seuil d'une couche de domaine : chaque mutant de src/ est tué.

Tester du code qui compte de l'argent

  • Faites vos assertions sur les unités mineures, pas sur les décimaux ni sur des chaînes mises en forme : self::assertSame(1_234, $total->minorUnits).
  • Gardez une devise de chaque précision dans les cas qui calculent : JPY (0), CAD (2), BHD (3). Un calcul qui suppose 2 décimales échoue sur le yen.
  • Vérifiez que les parts d'une répartition donnent le tout une fois additionnées : Money::sum(...$parts)->equals($amount).
  • Money n'a ni horloge, ni conteneur, ni entrée-sortie : aucune doublure n'est nécessaire.