2019-08-26 Нельзя Использовать Механизм Ошибок Для Бизнес-Логики

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

правила_разработки:как_не_надо_делать:2019-08-26_нельзя_использовать_механизм_ошибок_для_бизнес-логики [26.08.2019 05:12]
nikolay_carbonsoft создано
правила_разработки:как_не_надо_делать:2019-08-26_нельзя_использовать_механизм_ошибок_для_бизнес-логики [26.08.2019 05:27] (текущий)
nikolay_carbonsoft Approved(nikolay_carbonsoft 2019/08/26 05:27)
Строка 1: Строка 1:
 +**Нарушено правило:​** Программы пишутся для пользователей и программистов,​ а не для компьютера,​ все должно быть понятно для человека.
 +
 +**Задача:​** В тесте создания vm проверить,​ что нужные параметры в конфиге выставлены верно.
 +
 +**Ошибка:​** Сделал проверку с помощью кода:
 +<code bash>
 +cloudfox vm create ...
 +grep -q "​^IP=192.168.1.1"​ ${VM_CONF}
 +grep -q "​^NAME=test_vm"​ ${VM_CONF}
 +</​code>​
 +Здесь неявно используется функционал set -e (Exit immediately if a pipeline returns a non-zero status), который мы используем для контроля за ошибками выполнения команд внутри скриптов (если в конфиге опции нет, то grep упадет,​ тест тоже).
 +
 +**Как надо делать:​**
 +Так как проверка опций в конфиге - это основная бизнес-логика теста, мы должны описать это явно на языке bash (желательно с понятным логом):​
 +<code bash>
 +cloudfox vm create ...
 +if ! grep -q "​^IP=192.168.1.1"​ ${VM_CONF}; then
 +    echo "В конфиге vm неверно указан сгенерировался IP">&​2
 +    exit 1
 +fi
 +if grep -q "​^NAME=test_vm"​ ${VM_CONF}; then
 +    echo "В конфиге vm неверно указан сгенерировался NAME">&​2
 +    exit 1
 +fi
 +</​code>​
 +
 +
 +~~OWNERAPPROVE~~ /*Не удаляйте эту строку и ниже!*/
 +
 +{(rater>​id=1|name=Прочитал_правила_разработки:​как_не_надо_делать:​2019-08-26_нельзя_использовать_механизм_ошибок_для_бизнес-логики|type=vote|trace=user|tracedetails=1)}
 +