シナリオ
「last_week」というモデルに named_scope があります。先週のレコードを取得するだけです。
これをテストしたいのですが、私のアプローチは、返される結果が特定の範囲内にあることをテストすることです。これがクラス メソッドでこの機能をテストする正しい方法かどうかはわかりません。
RSpec、Shoulda、またはその他のサードパーティのクライアント プラグインを使用できません。必要な場合のみ、モカを使用できます。
# Model
class Article < ActiveRecord::Base
scope :last_week, :conditions => { :created_at => 1.week.ago..DateTime.now.end_of_day }
end
#Test
class ArticleTest < ActiveSupport::TestCase
test "named scope :last_week " do
last_week_range = DateTime.now.end_of_day.to_i - 1.week.ago.to_i
assert_in_delta last_week_range, Article.last_week.first.created_at - Article.last_week.last.created_at, last_week_range
end
end
このアプローチの何が正しいか、何が間違っているかについてのフィードバックを探しています。