Skip to content

Latest commit

 

History

History
36 lines (26 loc) · 1.8 KB

endpoint-testing.md

File metadata and controls

36 lines (26 loc) · 1.8 KB

Nota do tradutor

Esta é a tradução de endpoint-testing.md. Este link compara a versão em que se baseou esta tradução com a última versão disponível no branch master do AVA. Se não houver mudanças em endpoint-testing.md, então a tradução está atualizada.


Teste de Endpoint

Traduções: Español, Français, Italiano, 日本語

AVA não possui um método incorporado para testar endpoints, mas você pode usar qualquer biblioteca de asserção com ele. Vamos usar supertest-as-promised.

Uma vez que os testes são executados simultaneamente, é melhor criar uma nova instância de servidor para cada teste, porque se nós referenciarmos a mesma instância, poderia ser mutada entre os testes. Isso pode ser feito com um test.beforeEach e um t.context, ou simplesmente com uma função factory:

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

Em seguida, apenas injete sua instância de servidor em supertest. A única pegadinha é usar uma promessa ou sintaxe async/await em vez do método de supertest end:

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

	const res = await request(makeApp())
		.post('/signup')
		.send({email: 'ava@rocks.com', password: '123123'});

	t.is(res.status, 200);
	t.is(res.body.email, 'ava@rocks.com');
});