gpt4 book ai didi

ruby-on-rails - 测试驱动开发 'cannot be modified on an update' rspec 不会接受我已经完成的验证

转载 作者:行者123 更新时间:2023-11-28 20:44:06 24 4
gpt4 key购买 nike

这是我第一次通过测试驱动开发构建 ruby​​ on rails 应用程序。我目前正在尝试确保在调用更新时不会更改 user_id。我在运行 rspec 时仍然遇到错误。

这里是测试

it 'group_id' do
m = create(:group_membership)
m.should be_valid
m.group_id = -1
m.should have(1).errors_on(:group_id)
end

这是我在模型中实现的验证

validate :validate_group_id_hasnt_changed, :on => :update

def validate_group_id_hasnt_changed
errors.add :group_id, 'Group ID cannot be modified' if self.group_id_changed?
end

即使使用这段代码,rspec 中的测试仍然失败,我想知道为什么?我对我的测试很有信心,我认为我的实际验证是错误的。

非常感谢任何帮助,谢谢。

最佳答案

这不是坚持不懈的问题。运行

m.should have(1).....

将重新运行任何验证。

问题出在其他地方。检查您的其他验证或您的工厂生成器是否有“:group_membership”。

关于ruby-on-rails - 测试驱动开发 'cannot be modified on an update' rspec 不会接受我已经完成的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20404453/

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