Примечание от переводчика
Здесь содержится перевод файла endpoint-testing.md. Если при нажатии на ссылку, содержащую последние правки в master ветке AVA, Вы не можете найти файл endpoint-testing.md
, то можете считать что перевод актуален.
Переводы: 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: '[email protected]', password: '123123'});
t.is(res.status, 200);
t.is(res.body.email, '[email protected]');
});