Ruby on rails 3 在Rails中测试默认范围

Ruby on rails 3 在Rails中测试默认范围,ruby-on-rails-3,testing,rspec,Ruby On Rails 3,Testing,Rspec,全部。 我很难用默认范围为我的模型编写测试。我有一个属性为active_status的用户模型,管理员可以更改它。我将用户的默认作用域活动状态设置为true。我在管理页面中使用了unscoped的默认范围(:active_status=>true),以便管理员可以看到所有用户。 如何编写此测试? 谢谢听起来您需要做的就是为管理页面编写一个测试,创建一个非活动用户,并验证当管理页面加载时,是否返回一个结果。。。我遗漏了什么吗?你可以这样说: context "scopes" do descri

全部。 我很难用默认范围为我的模型编写测试。我有一个属性为active_status的用户模型,管理员可以更改它。我将用户的默认作用域活动状态设置为true。我在管理页面中使用了unscoped的默认范围(:active_status=>true),以便管理员可以看到所有用户。 如何编写此测试?
谢谢

听起来您需要做的就是为管理页面编写一个测试,创建一个非活动用户,并验证当管理页面加载时,是否返回一个结果。。。我遗漏了什么吗?

你可以这样说:

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
注意:我正在使用和

No.2:您可以将此视为反模式,因为Debug TSCAPE是受保护的方法。但这是你要求的