Что не нужно тестировать в 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

Нужно ли нам писать тесты для таких простых методов? Если есть синтаксическая ошибка, вы поймете ее при обновлении страницы. Аналогично, cucumber поймает это, если ваши функции попадут на любую страницу, которая вызвала метод full_name. Очевидно, мы не должны не полагаться на огурец для чего-то слишком сложного. Но действительно ли full_name нужен модульный тест?

Вы можете сказать, что, поскольку код прост, тест также будет простым. Так что вы можете написать тест, так как это займет всего минуту. Но кажется, что написание бесполезных тестов может принести больше вреда, чем пользы. Например, они загромождают ваши спецификации, затрудняя фокусировку на сложных тестах, которые действительно имеют значение. Кроме того, им требуется время для запуска (хотя, вероятно, не так много).

Но, как я уже сказал, я вряд ли являюсь опытным тестировщиком. Я не обязательно защищаю меньшее тестовое покрытие. Скорее, я ищу совет специалиста. Есть ли на самом деле веская причина для написания таких простых тестов?

13
задан Cory Schires 2 September 2010 в 18:28
поделиться