Testez votre application
Introductionâ
L'API de test fonctionnel de BowPHP permet de tester vos API de maniĂšre fluide en utilisant des requĂȘtes HTTP. Cette API est construite autour de PHPUnit, ce qui vous permet d'utiliser toute la puissance de ce framework pour effectuer des tests. Les principales opĂ©rations HTTP (GET, POST, PUT, DELETE, PATCH) sont couvertes, et il est possible d'ajouter des en-tĂȘtes ou des piĂšces jointes Ă vos requĂȘtes.
Classe TestCaseâ
La classe principale pour utiliser l'API de test est TestCase, qui Ă©tend la classe PHPUnitTestCase de PHPUnit. Elle fournit une interface simple pour envoyer des requĂȘtes HTTP et vĂ©rifier les rĂ©ponses.
MĂ©thodes de la classe TestCaseâ
L'URL de base des appels HTTP provient, dans cet ordre :
- La propriété
protected ?string $urldu test (si définie). - La variable d'environnement
APP_URL. - Le fallback
http://127.0.0.1:8080(port par défaut dephp bow run:server).
Pour personnaliser la résolution, surchargez la méthode protégée
getBaseUrl(): string dans votre classe de test.
1. attach(array $attach)â
Ajoute des fichiers / champs multipart Ă la prochaine requĂȘte. Les piĂšces jointes sont consommĂ©es aprĂšs l'appel et ne fuient pas vers les requĂȘtes suivantes du mĂȘme test.
$test->attach([
'file' => new \CURLFile('/path/to/file.jpg')
])->post('/upload');
2. withHeaders(array $headers)â
Remplace les en-tĂȘtes appliquĂ©s Ă toutes les requĂȘtes ultĂ©rieures du test.
$test->withHeaders([
'Authorization' => 'Bearer token',
'Content-Type' => 'application/json',
]);
3. withHeader(string $key, string $value)â
Ajoute (ou remplace) un seul en-tĂȘte.
$test->withHeader('X-Custom-Header', 'custom_value');
4. get(string $url, array $param = [])â
RequĂȘte GET. Les paramĂštres sont ajoutĂ©s en query string.
$response = $test->get('/api/users', ['page' => 1]);
5. post(string $url, array $param = [])â
RequĂȘte POST. Combinez avec attach() pour envoyer des fichiers.
$response = $test->post('/api/users', ['name' => 'John Doe']);