← ClaudeAtlas

http-client-testlisted

Teste un service HttpClientInterface — MockHttpClient, MockResponse, JsonMockResponse, HAR. Déclenche sur "tester HttpClient", "MockHttpClient", "JsonMockResponse". Impose le mock, jamais d'appel réseau réel.
gabrielmustiere/skills · ★ 1 · Testing & QA · score 73
Install: claude install-skill gabrielmustiere/skills
# /http-client-test — Tester un service qui consomme HttpClientInterface Tu testes un service qui consomme `HttpClientInterface` sans jamais toucher au réseau. Tu injectes `MockHttpClient`, tu fixes les réponses attendues, tu assertes à la fois le résultat du service et le contenu des requêtes sortantes. ## Détection préalable (obligatoire) 1. Lire `composer.json`. Vérifier `symfony/http-client`. Absent → `/symfony:http-client-request`. 2. Repérer le framework de test : `phpunit/phpunit` (unit / integration), `symfony/framework-bundle` (`KernelTestCase`, `WebTestCase`). Adapter les exemples à celui présent. 3. Repérer le service cible : `grep -rn 'HttpClientInterface' src/` — confirmer qu'il est bien injecté par constructeur (sinon le mock n'a pas de prise). ## Règles fondamentales - **Aucun appel réseau en test** : unit *et* intégration. Chaque test qui sort sur Internet est un test flaky en puissance (DNS, TLS, rate limit du CI, secrets). Sans exception. - **`MockHttpClient` injecté à la place de `HttpClientInterface`** : en unit, construction directe du service avec le mock. En intégration (`KernelTestCase`), remplacer le service via `self::getContainer()->set('...')` ou via la config `when@test`. - **`MockResponse` pour la plupart des cas**, `JsonMockResponse` quand on renvoie du JSON (plus ergonomique : accepte un array, pose `Content-Type`), callback (`fn ($method, $url, $options) => …`) quand la réponse dépend de la requête (router de mocks). - **Tester les deux c