有没有办法使用Factory Girl在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合作。
有什么建议吗?
答案 0 :(得分:3)
使用Factory.create(:order)应该将该对象写入数据库。 如果将事务夹具设置为true,则在测试完成后,所有写入数据库的数据都将回滚。
在运行测试之前你不能tail -f log/test.log
,你会在那里看到 lot 的活动。
我希望能够清除你的情况。