Ruby on Rails测试数据库不提交新记录
问题描述:
有没有一种方法可以使用Factory Girl在Ruby on Rails中对测试数据库进行新的更改?Ruby on Rails测试数据库不提交新记录
我有以下工厂:
Factory.define :shipping_info do |si|
si.name "Foo Bar"
si.street "12 Candy Lane"
si.country "US"
si.zip "12345"
si.state "IL"
end
和我有以下测试:
require File.dirname(__FILE__) + '/../../spec_helper'
describe CgCart::ShippingInfo do
before(:each) do
@order = Factory(:order)
@order.order_line_item = Factory(:order_line_item)
@shipping_info = Factory(:shipping_info)
end
it "order should not be nil" do
@shipping_info.should_not be_nil
end
end
当我运行这个测试通过。但是,我的测试数据库中没有创建新记录。我需要那里的数据供Dameon使用。
有什么建议吗?
答
使用Factory.create(:order)应该将该对象写入数据库。 如果将事务夹具设置为true,则在测试完成后,所有写入数据库的数据都将回滚。
在运行测试之前,您无法运行tail -f log/test.log
,您将在那里看到批次的活动。
我希望能清除你的情况。
你的意思是你可以使用`tail -f`或者你不能? – vik 2015-01-14 13:39:45