ActiveRecord を使用して情報を sqlite db ファイルに保存するプロジェクトがあります。私は Rails を使用していませんが、AR は完璧に機能しているようです。私の質問は、データベースにアクセスせずにクラスを正確にテストする方法ですか? いくつかの宝石 (FactoryGirl、UnitRecord) を見つけましたが、それらは Rails で動作することを意図しています。
class News < ActiveRecord::Base
belongs_to :feed
def delete_old_news_if_necessary
# time_limit = Settings::time_limit
return if time_limit.zero?
News.destroy_all("date < #{time_limit}")
end
def delete_news_for_feed(feed_id)
News.destroy_all(:id => feed_id)
end
def news_for_feed(feed_id)
News.find(feed_id)
end
end
列スタブを実行できることを読みました:
Column = ActiveRecord::ConnectionAdapters::Column
News.stubs(:columns).returns([Column.new(),...])
これはこれらのテストを行う正しい方法ですか? また、テスト用に別のデータベースを作成し、それを作成し、テストを実行し、削除する方が良いのはいつですか?