Тестирование
функции
227
Реакция на
сбойный тест
Что делать, если тест не проходит? Если предположить, что проверяются пра-
вильные условия, прохождение теста означает, что функция работает правильно,
а сбой — что в новом коде добавилась ошибка. Итак, если тест не прошел, изменять
нужно не тест, а код, который привел к сбою теста. Проанализируйте изменения,
внесенные в функцию, и разберитесь, как они привели к нарушению ожидаемого
поведения.
В данном случае у функции
get_formatted_name()
было всего два обязательных
параметра: имя и фамилия. Теперь она требует три обязательных параметра: имя,
второе имя и фамилию. Добавление обязательного параметра для второго имени
нарушило ожидаемое поведение
get_formatted_name()
. В таком случае лучше все-
го сделать параметр второго имени необязательным. После этого тесты для имен
с двумя компонентами снова будут проходить, и программа сможет получать также
вторые имена.
Изменим функцию
get_formatted_name()
,
чтобы параметр второго
имени перестал быть обязательным, и снова выполним тестовый сценарий. Если
он пройдет, можно переходить к проверке правильности обработки вторых имен.
Чтобы сделать второе имя необязательным, нужно переместить параметр
middle
в конец списка параметров в определении функции и задать ему пустое значение по
умолчанию. Также будет добавлена проверка
if
, которая правильно строит полное
имя в
зависимости от того, передается второе имя или нет:
Достарыңызбен бөлісу: