全て。デフォルトのスコープでモデルのテストを書くのに苦労しています。管理者が変更できる属性 active_status を持つユーザー モデルがあります。ユーザーのデフォルト スコープ active_status を true にしました。default_scope(:active_status => true ) 管理ページでは、管理者がすべてのユーザーを表示できるように、スコープなしを使用しました。このテストの書き方は?ありがとう
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 に答える