У вас есть разные уровни тестирования, у которых есть свои компромиссы.То, что вы описываете, это то, что можно было бы назвать интеграционным тестом с браузером, они имеют следующие характеристики
- Очень черный квадрат, поэтому вы выполняете ряд шагов (Войдите, заполните некоторые элементы, нажмите кнопку Отправить).) и влияет на утверждение (которое отображает на экране сообщение о том, что оно было создано, и вы видите некоторые доказательства этого).
- Эти тесты обычно связаны с тем, что они медленнее и менее надежны (ложные оповещения), но дают вамочень высокая степень уверенности в том, что что-то на самом деле работает между несколькими системами (сервер приложений rails, javascript в браузере, база данных, кеширование, другие службы)
Это контрастирует с модульным тестированием, которое в большей степени подтверждает этомаленький кусочек вашей системы работает.Как будто какой-то метод в классе работает правильно.В вашем примере это может быть утверждение о том, что ваша модель может принимать некоторые установленные атрибуты и сохранять.Это позволяет вам изолировать ваши зависимости с помощью насмешек.Обычно они быстрее и надежнее, но дают вам меньше уверенности в том, что все работает, как ожидалось.
Существует несколько переменных, но обычно, если это не сумасшедшая форма с высоким значением, я обычно просто проверяю валидацию модели илюбые объекты формы, которые вызываются с конкретными аргументами, которые могут вызвать проблемы.