До сих пор мы написали все положительные/счастливые тестовые сценарии пути, в этом посте мы рассмотрим, как мы можем написать несколько отрицательных тестов API, чтобы убедиться, что наши API безопасны и функционируют должным образом.

Давайте посмотрим на некоторые примеры -

Тест без проверки подлинности
Создайте тест, чтобы гарантировать, что пользователь не сможет получить доступ к API без надлежащей проверки подлинности.

it('401 Authentication Failed', async () => {
  // sending request without the Authentication Token
  const postRes = await request.post('posts').send(data);
  expect(postRes.body.code).to.eq(401);
  expect(postRes.body.data.message).to.eq('Authentication failed');
});

Ошибка проверки
Создайте тест, чтобы убедиться, что пользователь не сможет создавать данные, не заполнив обязательные поля.

it('422 Validation Failed', async () => {
  // 'body' is a required field which is not being passed with the data
  const data = {
    user_id: userId,
    title: 'My title',
  };
  const postRes = await request
    .post('posts')
    .set('Authorization', `Bearer ${TOKEN}`)
    .send(data);
  expect(postRes.body.code).to.eq(422);
  expect(postRes.body.data[0].field).to.eq('body');
  expect(postRes.body.data[0].message).to.eq("can't be blank");
});

Посмотрите это видео, чтобы узнать, как реализовать приведенные выше тестовые сценарии:

Вы также можете клонировать репозиторий GitHub, чтобы получить доступ к этому коду.

Чтобы узнать больше о тестировании API, ознакомьтесь с моей серией бесплатных руководств здесь —

https://www.youtube.com/watch?v=ZSVw3TyZur4&list=PL6AdzyjjD5HDR2kNRU2dA1C8ydXRAaaBV&ab_channel=AutomationBro

Я надеюсь, что этот пост помог вам, дайте мне знать в комментариях ниже!

Удачного тестирования! 😄

📧 Подпишитесь на мой список рассылки, чтобы получать доступ к большему количеству подобного контента
👍 Подпишитесь на @automationbro в Твиттере, чтобы быть в курсе последних обновлений