Тестовая база данных Ruby on Rails не фиксирует новые записи - PullRequest
0 голосов
/ 19 января 2011

Можно ли использовать 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

Когда я запускаю этот тест, он проходит.Однако в моей тестовой базе данных новые записи не создаются.Мне нужны данные для работы с Дамоном.

Есть предложения?

1 Ответ

3 голосов
/ 19 января 2011

Использование Factory.create (: order) должно записать этот объект в вашу базу данных. Если для фиксации транзакции установлено значение true, все данные, которые записываются в базу данных, откатываются после завершения тестов.

Вы не можете tail -f log/test.log до запуска ваших тестов, и вы увидите лот активности там.

Надеюсь, это прояснит вашу ситуацию.

...