Что указывают в разделе ‘Постусловия’ тест-кейса?

Ответ

Постусловия (Postconditions) описывают ожидаемое состояние системы после выполнения теста, а также действия по приведению среды в порядок.

Обычно включают два аспекта:

  1. Ожидаемый результат: Конкретное, проверяемое состояние, которое подтверждает успех теста.
  2. Действия по очистке: Шаги для возврата системы в исходное состояние или удаления тестовых данных.

Что указывают:

  • Изменения данных: Новая запись в БД, обновленный статус заказа, списанный баланс.
  • Состояние UI: Отображение конкретного сообщения, переход на определенную страницу, скрытие элемента.
  • Состояние системы: Запись в лог-файле, отправленное уведомление, изменение состояния сессии.
  • Очистка: Удаление созданных в тесте тестовых пользователей, откат транзакций, очистка кэша или cookies.

Пример для теста создания заказа:

**Ожидаемый результат:**
- В БД в таблице `orders` создана запись со статусом `new`.
- На экране отображается сообщение "Заказ №<ID> успешно создан".
- Пользователь перенаправлен на страницу деталей заказа.

**Очистка:**
- Удалить созданный тестовый заказ через API администратора.
- Очистить localStorage браузера от данных сессии заказа.

Четкие постусловия делают тест самодостаточным и предотвращают влияние на последующие тесты.

Ответ 18+ 🔞

А, слушай, вот эта вся хуйня с постусловиями — это, блядь, как после хорошей пьянки, понимаешь? Ты не только должен понять, что ты натворил, но и убрать за собой, чтобы утром не было мучительно стыдно и пиздец.

Вот смотри, ты провёл свой тест, накрутил, нажал, поёрзал. И что? А после этого надо чётко знать две вещи, ёпта:

  1. Что должно было получиться, если ты не мудак? То есть, какой конкретный, осязаемый пиздец должен был случиться в системе, чтобы все сказали: «О, тест прошёл!».
  2. И как теперь всю эту созданную хуйню убрать нахуй? Чтобы следующий тест не споткнулся об твои говнокирпичи.

Что там обычно проверяют, блядь?

  • Данные: Запись в базу добавилась? Статус поменялся? Баланс списался? Вот это вот всё.
  • Рожа системы (UI): Появилось ли нужное сообщение? Страница переключилась? Кнопка исчезла?
  • Внутренние дела: В логах что-то записалось? Письмо улетело? Сессия поменялась?
  • И главное — уборка: Созданного юзера удали, тестовый заказ сотри, куки почисть. Чтобы было чисто, как в маминой квартире после субботника.

Вот, смотри, пример, как будто тест заказа пиццы:

**Что должно быть, если всё ок:**
- В базе данных, в таблице `orders`, теперь валяется новая запись, и у неё статус `new` (типа, «жду не дождусь свою пепперони»).
- На экране пользователю тычут в лицо сообщением: «Заказ №<ВотТвойНомер> создан, расслабься».
- Браузер его перенаправляет на страницу, где можно следить, как его пицца едет.

**А теперь убери за собой, животное:**
- Удали этот тестовый заказ через админку (или API), чтобы он в статистику не лез.
- Почисти в браузере localStorage от следов этой сессии, чтобы следующий тест начал с чистого листа.

Вот когда ты так расписываешь, тест становится, блядь, самодостаточной единицей. Он сам пришёл, сам всё проверил, сам за собой убрал — идеальный гость. И следующий тест не упрётся рогом в твои вчерашние тестовые данные. Красота, ёпта!