class User
#...
validates :debit_card_status_change_date,
timeliness: { type: :date, allow_blank: true }
#...
end
Спецификация:Shoulda :: Matchers :: ActiveModel :: AllowValueMatcher :: CouldNotSetAttributeError
it { is_expected.to allow_value(nil).for(:debit_card_status_change_date) }
it { is_expected.to allow_value("").for(:debit_card_status_change_date) }
it { is_expected.not_to allow_value("abc").for(:debit_card_status_change_date) }
Почему второй и третий тест терпят неудачу?
Failure/Error: it { is_expected.to allow_value("").for(:debit_card_status_change_date) }
Shoulda::Matchers::ActiveModel::AllowValueMatcher::CouldNotSetAttributeError:
Expected Class to be able to set debit_card_status_change_date to "", but got nil instead.
Failure/Error: it { is_expected.not_to allow_value("abc").for(:debit_card_status_change_date) }
Shoulda::Matchers::ActiveModel::AllowValueMatcher::CouldNotSetAttributeError:
Expected Class to be able to set debit_card_status_change_date to "abc", but got nil instead.
Все работало перед обновлением от rails4.0, RSpec 2 и Shoulda-matchers 2.xx рельсам 4.2, RSpec 3.3.1 и Shoulda-matchers 3,0
Думаю, я понял это, получая сообщения об ошибках, и это было то, что я сделал - удаление '' '' и '' abc '' тестов. Спасибо за подробный ответ! –