Проверка моделей Rails проверок - PullRequest
2 голосов
/ 02 января 2012

Есть много примеров тестирования моделей RoR. Даже тест остается сухим во многих моделях. Но разве это не тестирование Rails, которое уже протестировано?

@user = User.make
@user.name = nil

@user.should_not be_valid

Разве не проверяется, работает ли Rails-валидация?

Ответы [ 3 ]

7 голосов
/ 02 января 2012

Разве не тестируется ли валидация Rails?

Дело в том, что он проверяет, что ваша модель проверяет наличие имени. Тот факт, что он также фактически проверяет, что валидация Rails работает, что Rspec работает, что Ruby работает, что ваша ОС работает, а правила физики внезапно не изменились, не относится к делу.

2 голосов
/ 02 января 2012

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

Если вы используете камень musta, вы можете просто использовать should validate_presence_of(:name).

1 голос
/ 02 января 2012

Подумайте о методе в вашей программе, где вы вызвали update_attribute (update_attribute пропускает проверку).Вызов этого метода оставляет объект в недопустимом состоянии, однако база данных все еще обновляется.Используя действительный? / Недействительный?может помочь вам поймать такие случаи.

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