【发布时间】:2018-10-05 14:13:05
【问题描述】:
我正在将一个遗留项目升级到 rails 5.0 并且一些测试失败了。我有以下测试:
describe ItemRun do
describe "#item_template" do
context "with an item template that has been deleted" do
let(:item_template) { ItemTemplate.create! title: "Hello" }
let!(:item_run) { item_template.item_runs.create! title: "Testing" }
before do
item_template.update_attributes(deleted: true)
end
it "responds to :title" do
expect(item_run.item_template.title).to eq ""
end
end
end
end
错误报告如下:
ItemRun#item_template with a item template that has been deleted responds to :title
Failure/Error: expect(item_run.item_template.title).to eq ""
expected: ""
got: "Hello"
(compared using ==)
# ./spec/models/item_run_spec.rb:14:in `block (4 levels) in <top (required)>'
我也尝试了item_template.destroy,但得到了相同的结果。
item_template.rb 定义了以下类:
class NullObject
def title
""
end
end
有什么想法吗?
【问题讨论】:
-
请发布
ItemTemplate的相关代码,从提供的摘录中不清楚为什么title应该改变。
标签: ruby-on-rails testing rspec ruby-on-rails-5