Я использую, Должен иметь в сочетании с Тестом:: Единица на одном из проектов я продолжаю работать. Проблема, с которой я сталкиваюсь, - то, что я недавно изменил это:
class MyModel < ActiveRecord::Base
validates_presence_of :attribute_one, :attribute_two
end
к этому:
class MyModel < ActiveRecord::Base
validates_presence_of :attribute_one
validates_presence_of :attribute_two, :on => :update
end
Ранее, мои (передающие) тесты были похожи на это:
class MyModelTest < ActiveSupport::TestCase
should_validate_presence_of :attribute_one, :attribute_two
end
Насколько я могу сказать, нет никакого параметра к should_validate_presence_of
это заставит этот тест продолжать передавать с изменениями, указанными выше. За исключением отказа Должен иметь при тестировании требования :attribute_two
, есть ли какой-либо путь вокруг этого?
В прошлом я просто использовал небольшой пользовательский блок должен, чтобы обойти эту проблему:
should "require :attr_two on update" do
mm = Factory(:my_model)
mm.attr_two = nil
mm.save
assert_equal false, mm.valid?
assert_equal("can't be blank", mm.errors.on(:attr_two))
end
Надеюсь, что он будет продолжать улучшаться, позволяя дальнейшие опции валидации АР в будущем. Дайте мне знать, что вы думаете, спасибо.