Tests
phil/circuit-breaker-bundleLes tests du bundle
tests/Unit vérifie la configuration et les services qu'elle produit — le stockage par défaut et son pool, le stockage
et l'horloge de l'application, les clients décorés, les forçages étiquetés et leur autoconfiguration, le paramètre des
clés, le collecteur — et les refus des circuits mal formés ; un conteneur compilé où un forçage autoconfiguré force
l'ouverture d'un circuit ; le stockage en cache et les entrées d'une autre forme qu'il lit comme fermées ; un client
derrière son circuit par l'intermédiaire de MockHttpClient, qui compte les erreurs serveur et de transport, refuse
tant que le circuit est ouvert et le referme après un appel d'essai ; et le collecteur du profileur.
Depuis la racine du monodépôt :
vendor/bin/phpunit packages/circuit-breaker-bundle/tests
Le bundle est tenu par Infection à un score de mutation couverte de 100 %, comme la bibliothèque.
Tester une application
Dans l'environnement de test, gardez les états dans un pool propre au test et le temps sous votre contrôle :
when@test:
framework:
cache:
pools:
cache.circuits:
adapter: cache.adapter.array
phil_circuit_breaker:
cache_pool: cache.circuits
clock: test.clock
services:
test.clock:
class: Symfony\Component\Clock\MockClock
public: true
Un test déclenche un circuit avec des réponses 503 de MockHttpClient, vérifie que la requête suivante lève
CircuitOpen sans atteindre le mock, puis avance l'horloge au-delà de open_seconds et envoie une requête d'essai.