数据映射器在内存数据库中

时间:2010-05-13 21:40:21

标签: ruby orm testing datamapper

使用内存数据库中的Sqlite3轻松设置Datamapper: DataMapper.setup:default,'sqlite3 :: memory:'。

然而,在测试时,我想在每次测试后销毁整个内存数据库,而不是调用automigrate!放弃一切的捷径。可能吗?或者是否足以将默认存储库设置为nil,并让垃圾收集器处理它?<​​/ p>

1 个答案:

答案 0 :(得分: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