У меня есть атрибут datatime taken_at
в одной из моих моделей, который будет записывать, когда был выполнен тест.Я пытаюсь проверить, что это поле всегда присутствует в моей модели со следующей строкой:
validates :taken_at, :presence => true
В моих тестах rspec я проверяю это правило с помощью следующего теста:
before (:each) do
@user = Factory(:user)
@attr = { :taken_at => DateTime.now }
end
it "should create a new profile given valid attributes" do
# set taken_at inside of a block because the validations fail otherwise.
@user.hartman_value_profiles.create! do |hvp|
hvp.taken_at = DateTime.now
end
end
Как видите, я устанавливаю taken_at
внутри блока, а не передаю его как параметр.Это работает, но я не понимаю, почему следующий тест не пройдёт:
it "should create a new profile given valid attributes" do
@user.hartman_value_profiles.create!(@attr)
end
Кто-нибудь знает, что здесь происходит?Будем весьма благодарны за любые советы, подсказки или указатели к документации.