Skip to content

Latest commit

 

History

History
35 lines (26 loc) · 2.29 KB

endpoint-testing.md

File metadata and controls

35 lines (26 loc) · 2.29 KB

Nota del traduttore

Questa è la traduzione del file endpoint-testing.md. Qui c'è il link dove si confrontano le differenze tra commit di riferimento di questa traduzione e l'ultimo commit di AVA sul branch master (Se si clicca sul link, e non si vede il file endpoint-testing.md nella lista dei file modificati, questa traduzione è aggiornata).


Test di endpoint

Traduzioni: Español, Français, Italiano, 日本語, Português, Русский, 简体中文

AVA non ha un metodo nativo per il test di endpoint, ma puoi utilizzare un'altra libreria si asserzione per questo. In questo esempio utilizzeremo supertest.

Poichè i test saranno eseguiti in concorrenza, è meglio creare una nuova instanza del server per ciascun file di test, poichè se utilizzassimo sempre la stessa istanza, questa potrebbe cambiare il suo stato tra un test e l'altro. Questo si può fare utilizzando test.beforeEach e t.context, o semplicemente con una funzione factory:

function makeApp() {
	const app = express();
	app.post('/signup', signupHandler);
	return app;
}

Poi, iniettiamo l'istanza server in supertest. L'unica particolarità da tenere a mente è quella di usare una Promise o async/await invece del metodo end di supertest:

test('signup:Success', async t => {
	t.plan(2);

	const res = await request(makeApp())
		.post('/signup')
		.send({email: '[email protected]', password: '123123'});

	t.is(res.status, 200);
	t.is(res.body.email, '[email protected]');
});