Skip to content

Latest commit

 

History

History
35 lines (26 loc) · 2.38 KB

endpoint-testing.md

File metadata and controls

35 lines (26 loc) · 2.38 KB

Примечание от переводчика

Здесь содержится перевод файла endpoint-testing.md. Если при нажатии на ссылку, содержащую последние правки в master ветке AVA, Вы не можете найти файл endpoint-testing.md, то можете считать что перевод актуален.


Тестирование HTTP серверов

Переводы: Español, Français, Italiano, 日本語, Português

AVA не имеет встроенных средств для тестирования HTTP серверов, но Вы можете использовать любую библиотеку для этого. Воспользуемся supertest-as-promised.

Так как все тесты запускаются одновременно, то лучше всего создавать новый сервер для каждого теста, потому что сервер может изменить свое состояние между тестами. Сделайте это при помощи test.beforeEach и t.context, или же воспользуйтесь factory методом:

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

Далее, передайте объект сервера в supertest. Используйте Promises или async/await вместо метода end supertest'a:

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');
});