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

Нарушено правило: Программы пишутся для пользователей и программистов, а не для компьютера, все должно быть понятно для человека.

Задача: В тесте создания vm проверить, что нужные параметры в конфиге выставлены верно.

Ошибка: Сделал проверку с помощью кода:

cloudfox vm create ...
grep -q "^IP=192.168.1.1" ${VM_CONF}
grep -q "^NAME=test_vm" ${VM_CONF}

Здесь неявно используется функционал set -e (Exit immediately if a pipeline returns a non-zero status), который мы используем для контроля за ошибками выполнения команд внутри скриптов (если в конфиге опции нет, то grep упадет, тест тоже).

Как надо делать: Так как проверка опций в конфиге - это основная бизнес-логика теста, мы должны описать это явно на языке 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

~~OWNERAPPROVE~~

Прочитал правила разработки как не надо делать 2019-08-26 нельзя использовать механизм ошибок для бизнес-логики
Yes(6) No(0) Clear

Yes:
Nikolay Carbonsoft, Наумов Михаил, Alexander Sobyanin, , Сергей Трошин, Анохин Владимир,

No:

Ваш комментарий. Вики-синтаксис разрешён: