Мы уже научились заменять нужные слова в файле и заменять нужные переменные, не изменяя сам файл. Сегодня рассмотрим ситуацию, когда нам нужно восстановить первоначальные значения в файле.
Для примера мы будет использовать - https://restful-booker.herokuapp.com/
- ✅ Создание файла
- ✅ Подстановка значений из Файла с длинным текстом
- ✅ Подстановка значений в Файл перед тестом
- ✅ Подстановка значений с записью изменений в Файл
- ♻ Возвращение значений в файле
- ♻ Замена после упавшего теста
Возвращение значений в файле
Казалось бы, самый явный вариант как это можно сделать - это использовать наш метод замены слов, в конце теста
Как видим, тест прошёл успешно и заменил нам нужное слово
В нашем файле все значения вернулись на свои места. Однако такой подход применим только в контролируемой среде. В реальных условиях тест может завершиться неудачно, а может пройти успешно. Мы не можем полагаться на удачу, так как нам необходимо будет использовать этот файл в другом тесте. Поэтому нам нужен надёжный способ восстановления исходного состояния файла при любых обстоятельствах.
Замена после упавшего теста
Допустим ошибку в тесте, чтобы код не дошёл до нашей обратной замены
Наш тест упал и файл не вернулся в исходное состояние
Для этого вспомним способ, который был рассмотрен в статье
Мы использовали TestListener, который выполнял команды в зависимости от того успешный тест или же нет.
Можем воспользоваться уже имеющимся способом или создать новый. В нашем примере используется API. Допустим, новый класс будет отвечать за результаты тестов при работе с API. Этот класс будет выглядеть так:
Из за того, что мы не можем переопределить наш Abstract класс, выходит немного усложнённый код. Можем его упростить, нам нужен метод ReplaceWordMethod, который доступен в любом классе унаследованный от Abstract.
Теперь выглядит проще и понятней
Не забываем добавить аннотацию во все классы с тестами, где хоти использовать данный функционал.
Запускаем наш сломанный тест. Как видим файл изменился для отправки, но несмотря на у павший тест, наш файл вернулся в предыдущее состояние.
Если у вас есть вопросы или вы просто хотите стать частью команды тестировщиков, то переходи в ТГ канал, где можем пообщаться с единомышленниками и найти много интересных и полезных знаний!Также если вам нужна индивидуальная консультация, менторство и помощь в создании проекта пишите в ТГ канал!