Я создал простое приложение rails с тремя классами, которые до сих пор наследуются от ActiveRecord. Я немного опередил свою тестовую разработку, так как я уже написал классы, которые нужно протестировать. Пока что все тесты, которые я написал, прошли хорошо. Объекты создаются, атрибуты отвечают, проверки все на месте.
Проблема начинается, когда я призываю "!" на моих методах создания, так как теперь объекты передаются полностью в базу данных. Вместо моих обычных проверок, перехватывающих неверные данные, кажется, что базе данных дается шанс ответить на стимул.
Пока ошибка, которую я получил при выполнении моих тестов:
ActiveRecord :: RecordInvalid:
Проверка не удалась: Магазин слишком длинный (максимум 11 символов)
Я рад, что получаю эту ошибку, но хотел бы знать, как лучше спланировать ее в моих тестах. Код, который генерирует вышеуказанную ошибку:
it "should not a accept a department with a shopify shop_id that's over 11 chars" do
long_id = "9" * 12
long_id_department = Department.create!(@attr.merge(:id => [long_id, ""]))
long_id_department.should_not be_valid
end
Я предполагаю, что эта строка, в частности, должна принять другую форму: long_id_department.should_not be_valid
Надеюсь, вы все могли бы пролить свет на то, какой должна быть эта форма.