0

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

4

2 に答える 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

注: RSpecFactoryGirlを使用しています。

注 2: default_scope は保護されたメソッドであるため、これはアンチ パターンと見なすことができます。しかし、これはあなたが求めたものです。

于 2013-11-11T21:58:45.510 に答える