Я писал тесты некоторое время, и я начинаю разбираться в вещах. Но у меня есть некоторые вопросы относительно того, сколько действительно необходимо для тестирования. Консенсус кажется довольно ясным: больше охвата всегда лучше. Но, по крайней мере, с точки зрения новичка, я задаюсь вопросом, действительно ли это так.Что не тестировать в Rails?
Возьмите это полностью ванильное действие контроллера, например:
def create
@event = Event.new(params[:event])
if @event.save
flash[:notice] = "Event successfully created."
redirect_to events_path
else
render :action => 'new'
end
end
Просто сгенерированные строительные леса. Здесь мы не делаем ничего необычного. Почему важно написать тесты контроллера для этого действия? В конце концов, мы даже не писали код - генератор сделал для нас работу. Если в рельсах нет ошибки, этот код должен быть в порядке. Кажется, тестирование этого действия не слишком отличается от тестирования, скажем, collection_select, - и мы этого не сделали. Кроме того, предполагая, что мы используем огурец, у нас уже должны быть основаны основы (например, где он перенаправляется).
То же самое можно сказать и о простых методах модели. Например:
def full_name
"#{first_name} #{last_name}"
end
Нужно ли нам писать тесты для таких простых методов? Если есть синтаксическая ошибка, вы поймаете ее на обновлении страницы. Точно так же огурец поймает это, пока ваши функции попадут на любую страницу, которая называется методом full_name. Очевидно, мы не должны полагаться на огурец для чего-то слишком сложного. Но действительно ли full_name действительно нуждается в модульном тесте?
Вы можете сказать, что, поскольку код прост, тест также будет прост. Таким образом, вы можете написать тест, потому что это займет минуту. Но кажется, что писать практически бесполезные тесты может принести больше вреда, чем пользы. Например, они загромождают ваши спецификации, что затрудняет фокусировку на сложных тестах, которые на самом деле имеют значение. Кроме того, им требуется время для запуска (хотя, вероятно, не так много).
Но, как я уже сказал, я вряд ли эксперт-тестер. Я не обязательно выступаю за меньшее покрытие теста. Скорее, я ищу совет экспертов. Есть ли веская причина писать такие простые тесты?
http://www.railway.at/articles/2008/05/14/do-we-really-need-controller-and-view-tests/ – prograils
https://www.justinweiss.com/articles/ how-much-test-is-too-much/ – prograils
https://signalvnoise.com/posts/3159-testing-like-the-tsa – prograils