2

Я изучил Rails для создания веб-сайта, а базовая версия запущена и запущена. К сожалению, я написал пару тестов для своего кода. Что мне теперь делать, чтобы получить тестовое покрытие для моего кода? Будет сложно вернуться назад и написать тесты для всего моего предыдущего кода. Имеет ли смысл использовать инструмент записи, такой как Selenium, для посещения сайтов и записи тестов? Есть ли специальный инструмент записи для Rails?Как поймать на тестах для Rails-сайта

(Короче говоря, как можно нагнать, чтобы получить тестовое покрытие на код, который не имеет достаточного количества тестов?)

ответ

1

Во-первых, количественно измерить ваш тестовое покрытие с помощью инструмента, как rcov.

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

Я ожидаю, что тесты на запись приведут к тесту, источник которого трудно для людей читать. Итак, вы можете рассмотреть вместо capybara-webkit (но don't use capybara 2.1 yet).

И, наконец, поскольку ваша текущая тестовая база невелика, у вас есть возможность рассмотреть rspec или shoulda-context.

0

Истина заключается в том, что вам просто нужно вернуться и пройти все испытания.

Во-первых, ни один из инструментов «записи» не поможет с тестированием устройства и контроллера.

Во-вторых, если вы что-то использовали для «записи» функций/тестов интеграции, что именно вы будете тестировать? Если вы не являетесь конкретным для того, что функционально вы ожидаете быть там, как вы можете быть уверены, что ваше приложение даже делает то, что он должен делать?

+0

До сих пор я проверял вещи вручную, чтобы увидеть, работает ли это. Поэтому я могу сделать еще одну проверку и автоматически записать, что происходит. (Тогда я могу сохранить важную информацию, которую он показывает.) Затем в будущем, если что-то сломается, оно будет автоматически отображаться при запуске тестов. Это звучит намного легче, чем писать тесты для всего. –

+0

Да, «проще» не должно быть вашей целью. Подумайте об этом таким образом, единственный тест, который вы можете записать прямо сейчас, - «Приложение работает хорошо». И когда что-то «ломается», все это означает, что поведение отличается от того, что есть сейчас. Но что другое? И эта разница хорошая или плохая? Вам действительно нужно просто порезать зубы и написать тесты, например «Администраторы могут видеть эти кнопки», «Обычные пользователи не могут видеть эти кнопки», «Отправка формы без ошибок создает нового пользователя», «Забывание электронной почты вызывает ошибку проверки» и т. Д. Если вы не хотите этого делать, не нужно вообще писать какие-либо тесты. – messick

Смежные вопросы