<Предыдущая | Содержание: | Следующая>
Тестирование
Тестирование — важный этап разработки любого программного обеспечения, включая сценарии. В мире открытого исходного кода существует поговорка «выпускайте раньше, выпускайте часто», которая отражает этот факт. Благодаря раннему и частому выпуску программного обеспечения больше возможностей для использования и тестирования.
Опыт показал, что ошибки гораздо легче найти и гораздо дешевле исправить, если они обнаружены на ранних стадиях цикла разработки.
В главе 26 мы увидели, как можно использовать заглушки для проверки выполнения программы. На самых ранних этапах разработки сценария они являются ценным методом проверки хода нашей работы.
Давайте рассмотрим описанную выше проблему удаления файлов и посмотрим, как ее можно запрограммировать для облегчения тестирования. Тестировать исходный фрагмент кода было бы опасно, так как его целью является удаление файлов, но мы могли бы изменить код, чтобы сделать тест безопасным:
если [[-d $ dir_name]]; тогда, если cd $ dir_name; тогда
эхо rm * # ТЕСТИРОВАНИЕ
еще
echo "не могу перейти к '$ dir_name'"> & 2 выйти 1
фи еще
echo "такого каталога нет: '$ dir_name'"> & 2 exit 1
fi
выход # ТЕСТИРОВАНИЕ
если [[-d $ dir_name]]; тогда, если cd $ dir_name; тогда
эхо rm * # ТЕСТИРОВАНИЕ
еще
echo "не могу перейти к '$ dir_name'"> & 2 выйти 1
фи еще
echo "такого каталога нет: '$ dir_name'"> & 2 exit 1
fi
выход # ТЕСТИРОВАНИЕ
Поскольку условия ошибки уже выдают полезные сообщения, нам не нужно их добавлять. Самым важным изменением является размещение эхо команда непосредственно перед rm команда, чтобы разрешить отображение команды и ее расширенного списка аргументов, а не фактическое выполнение команды. Это изменение обеспечивает безопасное выполнение кода. В конце фрагмента кода мы помещаем выход Команда для завершения теста и предотвращения выполнения любой другой части сценария. Необходимость в этом будет зависеть от конструкции сценария.
Мы также включаем некоторые комментарии, которые служат «маркерами» для наших изменений, связанных с тестированием. Их можно использовать для поиска и удаления изменений после завершения тестирования.