Rails WebアプリケーションとRSpecを初めてテストしました。私は従来のコードで作業し、テストを追加する必要があります。 RSpecを使ってファインダーと名前付きスコープをテストする最良の方法は何ですか?Rails:RSpecで名前付きスコープをテストする
Googleではいくつかのアプローチがありますが、理想的ではありません。たとえば :
http://paulsturgess.co.uk/articles/show/93-using-rspec-to-test-a-named_scope-in-ruby-on-rails
it "excludes users that are not active" do
@user = Factory(:user, :active => false)
User.active.should_not include(@user)
end
または
http://h1labs.com/notebook/2008/8/21/testing-named-scope-with-rspec
it "should have a published named scope that returns ..." do
Post.published.proxy_options.should == {:conditions => {:published => true}}
end
私は "鉄道のテスト処方箋" に最善のアプローチ(私見)を見つける:
should_match_find_method :active_only { :active == true }
should_match_find_method
カスタムヘルパーメソッド
スコープテストは実際に経験的であり、ここで公開する最初の方法に固執します。 – apneadiving
私は同意します。最初のアプローチで何が問題なのですか?おそらく欠陥のある構成パラメータを調べる(実際には書き直す)のではなく、真の動作を指定します。 –
@RobDavis「設定パラメータに問題がある可能性があります」+1 –