gpt4 book ai didi

ruby-on-rails - rails : method works but test wont pass 中的 rspec 模型测试

转载 作者:行者123 更新时间:2023-11-28 20:57:03 25 4
gpt4 key购买 nike

我有两个模型 Indicator belongs_to Privacy。

在指示器中我写了一个方法来返回隐私设置的正确名称

def privacy
Privacy.find(privacy_tag_id).content
end

这适用于 Rails 控制台。如果我创建一个 Indicator 然后运行 ​​Indicator.privacy,我会返回“红色”或“绿色”或其他任何内容。但我无法让我的 rspec 通过。这是测试

describe "indicator" do
it "should return a human named when asked for its privacy level" do
@privacy = PrivacyTag.create(:content => "Secret")
@ind = Indicator.new(:content => 'test',
:privacy_tag_id => @privacy.id)
@ind.privacy.should == "Secret"
end
end

当我运行测试时,我收到这条消息:

Failures:

1) indicator should return a human named when asked for its privacy level
Failure/Error: @ind.privacy.should_equal "Secret"
ActiveRecord::RecordNotFound:
Couldn't find PrivacyTag without an ID
# ./app/models/indicator.rb:13:in `privacy'
# ./spec/models/indicator_model_spec.rb:9:in `block (2 levels) in <top (required)>'

我在测试中做错了什么?有什么想法吗?

最佳答案

我怀疑没有创建 Privacy 对象。尝试调用 create! 而不是 create。如果它引发异常,则意味着您的 Privacy 模型中有一些验证。

首先看到您的模型会非常有帮助。

关于ruby-on-rails - rails : method works but test wont pass 中的 rspec 模型测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12221596/

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