2011-01-18 77 views
0

有没有一种方法可以使用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使用。

有什么建议吗?

回答

3

使用Factory.create(:order)应该将该对象写入数据库。 如果将事务夹具设置为true,则在测试完成后,所有写入数据库的数据都将回滚。

在运行测试之前,您无法运行tail -f log/test.log,您将在那里看到批次的活动。

我希望能清除你的情况。

+0

你的意思是你可以使用`tail -f`或者你不能? – vik 2015-01-14 13:39:45