2010-05-13 64 views
1

使用以下內存數據庫中的Sqlite3可以很容易地設置Datamapper: DataMapper.setup:default,'sqlite3 :: memory:'。Datamapper在內存數據庫中

但是,測試時,我想在每次測試後銷燬整個內存數據庫,而不是調用automigrate!作爲放棄一切的捷徑。可能嗎?還是足夠將默認存儲庫設置爲零,並讓垃圾收集器處置它?

回答

1

我這樣做的方法(在rspec的):

Spec::Runner.configure do |config| 
    config.before(:all) do 
    DataMapper.auto_migrate! 
    end 

    config.before(:each) do 
    DataMapper::Repository.context << repository(:default) 
    end 

    config.after(:each) do 
    DataMapper::Repository.context.pop 
    end 
end