Какова лучшая практика для тестирования моделей в Rails? - PullRequest
4 голосов
/ 01 мая 2011

Сколько или сколько нужно тестировать модели на рельсах?Поскольку фреймворк в основном так много делает для вас, мне интересно, стоит ли тестировать сгенерированные методы activerecord, чтобы убедиться, что они работают или нет.

Ребята, вы неявно тестируете их через контроллеры?

В мире Java, если бы я использовал Hibernate, мне пришлось написать так много картинок ORM, что тестирование сохранения / удаления / поиска для каждой сущности было ОЧЕНЬ важно - даже если я просто унаследовал эти методы от базового класса - потому что онбыло легко получить неверную информацию о карте или сделать глупую ошибку.Удаление было важно проверить, чтобы убедиться, что Hibernate будет правильно каскадироваться.

Но поскольку вы вообще не настраиваете все это в rails ... это так просто ... стоит ли тестировать, илиВы просто предполагаете, что это работает?Вы просто ограничиваете себя тем, чтобы убедиться, что ассоциации работают так, как ожидалось?

Какова лучшая практика?Есть хорошие примеры тестирования?Я нашел страницу здесь: http://guides.rubyonrails.org/testing.html

Но она не говорила конкретно об ActiveRecord.Больше внимания уделялось контроллерам и другим вещам.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 01 мая 2011

Я не пытаюсь проверить какие-либо методы, представленные активной записью и тому подобное. Они уже проверены командой рельсов. И они уже написали контрольные примеры.

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

рельсовые пути были бы очень хорошей отправной точкой для вас. после этого вы можете копаться в более интересные вещи. Я бы порекомендовал вам взглянуть и rspec и огурец.

Еще несколько вопросов (и ответов) о стековом потоке, которые будут вам полезны

5 голосов
/ 01 мая 2011

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

Вам следует протестировать все, что вы пишете.Любой метод модели, который вы кодируете, должен быть протестирован.То есть не проверяйте, работает ли метод удаления Active Record, но если ваша реализация процесса работает (например, если пользователь нажимает кнопку «Удалить» и у него есть элемент, он удаляется).Протестируйте поведение, а не средства его выполнения.

Посмотрите на этот очень хороший пример тестирования контроллеров с помощью rspec:

http://railscasts.com/episodes/71-testing-controllers-with-rspec

Ваш упомянутый ресурсвероятно, также лучший :) Если вы заинтересованы в rspec, вы найдете здесь очень полезную информацию:

http://rspec.info/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...