Skip to content

Latest commit

 

History

History
43 lines (31 loc) · 2.91 KB

endpoint-testing.md

File metadata and controls

43 lines (31 loc) · 2.91 KB

Note du traducteur

C'est la traduction du fichier endpoint-testing.md. Voici un lien vers les différences avec le master de AVA (Si en cliquant sur le lien, vous ne trouvez pas le fichier endpoint-testing.md parmi les fichiers modifiés, vous pouvez donc en déduire que la traduction est à jour).


Tester un endpoint

Traductions : English, Español, Italiano, 日本語, Português, Русский, 简体中文

Ouvrir dans StackBlitz

AVA n'a pas de méthodes internes pour tester les endpoints, mais vous pouvez utiliser n'importe quel client HTTP de votre choix, par exemple got. Vous devrez également démarrer un serveur HTTP, de préférence sur un port unique, afin de pouvoir exécuter des tests en parallèle. Pour cela, nous recommandons test-listen.

Étant donné que les tests sont exécutés simultanément, il est préférable de créer une nouvelle instance de serveur au moins pour chaque fichier de test, voire même pour chaque test. Ceci peut être accompli avec les hooks test.before() et test.beforeEach() et t.context. Si vous démarrez votre serveur à l’aide d’un hook test.before(), vous devez vous assurer d’exécuter vos tests en série.

Découvrez l'exemple ci-dessous :

import http from 'http';
import test from 'ava';
import got from 'got';
import listen from 'test-listen';
import app from '../app';

test.before(async t => {
	t.context.server = http.createServer(app);
	t.context.prefixUrl = await listen(t.context.server);
});

test.after.always(t => {
	t.context.server.close();
});

test.serial('get /user', async t => {
	const {email} = await got('user', {prefixUrl: t.context.prefixUrl}).json();
	t.is(email, 'ava@rocks.com');
});

D'autres bibliothèques pourraient vous être utiles :