gpt4 book ai didi

ruby-on-rails - 应该:测试validates_presence_of:on =>:update

转载 作者:行者123 更新时间:2023-12-03 16:20:14 30 4
gpt4 key购买 nike

我在我从事的项目之一上将Shoulda与Test::Unit结合使用。我遇到的问题是我最近更改了此设置:

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的需求时没有放弃Shoulda,有什么办法可以解决?

最佳答案

在过去,我只是使用了一个小自定义块来解决此问题:

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

希望应该通过将来允许更多的AR验证选项来继续改进。让我知道您的想法,欢呼。

关于ruby-on-rails - 应该:测试validates_presence_of:on =>:update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2009159/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com