全部。我很难用默认范围为我的模型编写测试。我有一个属性为 active_status 的用户模型,可以由管理员更改。我给了用户默认范围active_status true。default_scope(:active_status => true ) 在 Admin 页面中,我使用了 unscoped,以便 Admin 可以看到所有用户。这个测试怎么写?谢谢
问问题
272 次
2 回答
1
你可以这样做:
context "scopes" do
describe "default_scope" do
before do
create(:user, active_status: true)
create(:user, active_status: false)
}
context "with default scope" do
subject { User.all }
it { should have(1).user }
end
context "without default scope" do
subject { User.unscoped.all }
it { should have(2).users }
end
end
end
注意:我正在使用RSpec和FactoryGirl。
注意2:您可以将其视为反模式,因为 default_scope 是受保护的方法。但这是你要求的。
于 2013-11-11T21:58:45.510 回答
1
听起来您需要做的就是为管理页面编写一个测试,创建一个非活动用户并验证当管理页面加载时,返回一个结果......我错过了什么吗?
于 2013-11-11T21:20:15.767 回答