【发布时间】:2014-02-12 18:45:16
【问题描述】:
如果启用了新新闻,它会自动从以前的新闻中删除启用。 我写了一个规范,但他们失败了。由于这些规范可以改进吗?
Post.rb
before_validation :removes_enabled
def removes_enabled
if enabled_changed? && enabled?
Post.update_all( enabled: false )
end
end
我的规格:
describe "#remove_enabled" do
let!(:p1) {create :post, enabled: true }
it "should remove enabled for other post" do
p2 = create :post, enabled: true
expect(p1.enabled).to eq(false)
end
it "should not remove enabled for other post if current post is not enabled" do
p2 = create :post, enabled: false
expect(p1.enabled).to eq(true)
end
end
【问题讨论】:
-
尝试在两个测试用例中重新加载
p1。expect(p1.reload.enabled).to eq(false)和expect(p1.reload.enabled).to eq(true)
标签: ruby-on-rails rspec ruby-on-rails-4 rspec2 rspec-rails