在Rails 3中测试作用域的最佳方法是什么.在rails 2中,我会做类似的事情:
Rspec的:
it 'should have a top_level scope' do
Category.top_level.proxy_options.should == {:conditions => {:parent_id => nil}}
end
Run Code Online (Sandbox Code Playgroud)
这在rails 3中失败,并为[]:ActiveRecord :: Relation"错误提供了"未定义的方法`proxy_options'.
人们如何测试使用正确的选项指定范围?我看到你可以检查一下arel对象,也许可以对此做出一些期望,但我不确定最好的方法是什么.
我的模型有default_scope(:order =>'created_at')我的测试(rspec,factory girl,shoulda等)是:
require 'spec/spec_helper.rb'
describe CatMembership do
context "is valid" do
subject { Factory.build(:cat_membership) }
it { should be_valid }
it { should belong_to :cat}
it { should belong_to :cat_group}
it { should have_db_column(:start_date)}
it { should have_db_column(:end_date)}
end
end
Run Code Online (Sandbox Code Playgroud)