BDD с Cucumber и rspec - когда это избыточно?

Версия для Rails / инструмента: Насколько глубоки ваши модульные тесты?

Сейчас я пишу:

  • Особенности огурца (интеграционные тесты) - это тест на соответствие HTML / JS, который возвращается нашим приложением, но иногда также тестирует другие вещи , например, вызовы сторонних сервисов.
  • Тесты контроллеров RSpec (функциональные тесты), первоначально только в том случае, если контроллеры имеют какую-либо значимую логику, но теперь все больше и больше.
  • Тесты моделей RSpec (модульные тесты)

Иногда это совершенно необходимо; необходимо протестировать поведение модели, которое не совсем очевидно или не видно конечному пользователю. Когда модели сложные, их обязательно нужно тестировать. Но в остальном, мне кажется, тесты излишни. Например, вы тестируете метод foo , если он вызывается только bar , а бар проверяется? Что, если bar - это простой вспомогательный метод для модели, который используется и легко тестируется в функции Cucumber? Вы тестируете метод в rspec, а также в Cucumber? Я борюсь с этим, поскольку написание большего количества тестов требует времени и поддержание нескольких «версий» того, что фактически является одним и тем же поведением, что делает поддержку набора тестов более трудоемким, что, в свою очередь, делает изменения более дорогими.

Короче говоря. Вы верите, что есть время, когда достаточно писать только функции Cucumber? Или нужно всегда тестировать на каждом уровне? Если вы считаете, что существует серая зона, каков ваш порог «требуется функциональное / модульное тестирование». С практической точки зрения, чем вы занимаетесь в настоящее время и почему (или почему нет) вы думаете, что этого достаточно?


ИЗМЕНИТЬ : Вот пример того, что может быть «излишним тестированием». По общему признанию, я смог написать это довольно быстро, но это было полностью гипотетически.

38
задан Community 23 May 2017 в 10:29
поделиться