Как я должен идти о тестировании этого в рельсах? - PullRequest
0 голосов
/ 23 ноября 2011

Я пишу тесты для метода в моей модели. Конечно, это звучит так, как будто мне нужны юнит-тесты, однако один из аргументов этого метода берет параметры из формы в приложении rails. Должен ли я создавать модульные тесты или функциональные тесты (или оба)?

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

Спасибо.

1 Ответ

2 голосов
/ 23 ноября 2011

У вас должен быть как минимум один или несколько юнит-тестов для вашего метода. Как правило, вам нужно охватить три вещи:

  1. Базовый случай - Какие параметры наиболее вероятны для этого метода?
  2. Особые случаи - Какие крайние случаи еще будут проходить? Каковы верхние и нижние границы? А как насчет нулевого случая?
  3. Недопустимые случаи. Какие значения могут быть предоставлены недопустимому методу? Как ваш метод справляется с ними?

Если вы охватите эти случаи и не будете делать ничего особенного с передачей параметров в метод, функциональный тест станет менее важным.

Однако я все же призываю вас провести некоторое поведенческое тестирование. Rails - это одна из сред, в которой как модульное тестирование, так и поведенческое / интеграционное тестирование легко выполнить благодаря большим доступным драгоценным камням - в основном RSpec , огурец и капибара . Если вы напишете функцию Cucumber, Capybara примет изменения параметров формы, и ваша функция потерпит неудачу, если что-то не так.

...