Можно ли охватить все методы для применения в больших рельсах, используя Rspec? - PullRequest
2 голосов
/ 05 ноября 2011

У меня есть приложение, в котором есть как минимум 50-55 моделей, в среднем по 15 методов в каждой.

Возможно ли и имеет ли смысл охватить все методы (включая очень сложные методы) с использованием rspec & rcov?

У меня также есть следующие запросы

Rspec также полезен для контроллеров, помощников и представлений? Или огурец должен быть полезнее?

rspec поможет мне сократить избыточность? Если да, то как?

пригодится ли rspec для непрерывного изменения требований?

1 Ответ

6 голосов
/ 05 ноября 2011

Конечно, можно охватить все методы тестами, даже больше, если вы начнете с написания тестов ранее, что обычно приводит к более гибкому применению в долгосрочной перспективе. С другой стороны, наличие 100% покрытия тестами не гарантирует, что качество кода вашего приложения будет лучше или ваша команда будет более продуктивной. Единственное, что он может гарантировать - это то, что у вашего приложения меньше недостатков, и что вы ничего не сломаете в случае рефакторинга, а затем приходит аргумент против покрытия всех методов тестами:

Чаще всего вы будете проводить рефакторинг и поддержку кода, что обычно включает добавление новых методов и избавление от других методов.

Я бы сказал, что хорошо иметь тесты для всех открытых методов, вызываемых другими объектами или представлениями, контроллерами, помощниками и т. Д. И тестировать для всех соответствующих методов API, но далеко не обязательно тестировать каждый отдельный метод. .

С другой стороны, это будет зависеть от самого вашего приложения больше, чем от абстрактного разговора об этом.

Вы должны спросить себя, стоит ли это того, какую ценность это добавляет и т. Д., И если это имеет смысл, пойти на это. Выбираете ли вы делать это в чистом виде или использовать огурец, горчицу, капибару и т. Д.

...