我想在这些行中仅在RSpec测试期间创建一个DataMapper模型。但是如何在RSpec测试中创建底层的temp_models表?
require 'spec_helper'
class TempModel
include DataMapper::Resource
property :id, Serial
property :foo, String
end
describe "MyTests" do
before(:all) do
# what goes here to create the table and finalize the model?
end
after(:all) do
# what goes here to drop the table?
end
before(:each) do
TempModel.destroy!
end
it 'creates a TempModel' do
expect { TempModel.create(:foo => "yowza")}.to_not raise_error
end
end
所以,就像代码所说的那样,我在before(:all)
块中放置什么来在db中创建表并创建DataMapper模型?并在after(:all)
块中删除表格?
或者,如何创建“本地迁移”并对其进行上下移动?
答案 0 :(得分:0)
我挖掘了各种来源,并尝试提出这个解决方案。如果有人对此有所改进,请告诉我:
require 'spec_helper'
class TempModel
include DataMapper::Resource
property :id, Serial
property :foo, String
end
describe "MyTests" do
before(:all) do
DataMapper.auto_upgrade!
TempModel.finalize
end
after(:all) do
adapter = DataMapper.repository(:default).adapter
adapter.execute("DROP TABLE #{TempModel.storage_name}")
end
before(:each) do
TempModel.destroy!
end
it 'creates a TempModel' do
expect { TempModel.create(:foo => "yowza")}.to_not raise_error
end
end