I use a cucumber with Factory Girl and here is a mysterious problem,
at my stages of cucumber:
fact = Factory.create(:fact,
:factable_type => "type_#{i}",
:factable_id => i.to_s,
:factable_action => "action_#{i}",
:priority => "1"
)
When I check the debug mode with ruby mine, I have a fact with an identifier, but if I register my IRB test console:
ruby-1.9.2-p180 :011 > Fact.all
=> []
Of course, when I want to run my tests and check for objects in the database, my tests fail because of this. Do you have any ideas?
Here is my env.rb file:
require 'cucumber/rails'
require 'fakeweb'
require "factory_girl"
require 'capybara/rspec'
require 'capybara/rails'
require File.expand_path('../../../spec/vcr_setup.rb', __FILE__)
require 'cucumber/rails'
require 'cucumber/rspec/doubles'
require 'email_spec'
require 'email_spec/cucumber'
Capybara.default_selector = :css
Capybara.run_server = true
Capybara.default_selector = :xpath
Capybara.default_wait_time = 2
Capybara.ignore_hidden_elements = false
Capybara.javascript_driver = :culerity
ActionController::Base.allow_rescue = false
ENV["RAILS_ENV"] = "test"
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
require 'cucumber/rails/world'
Cucumber::Rails::World.use_transactional_fixtures
Fixtures.reset_cache
fixtures_to_load = ['facts','roles', 'user_types']
fixtures_folder = File.join(Rails.root, 'features', 'fixtures')
fixtures = Dir[File.join(fixtures_folder, '*.yml')].map {|f| File.basename(f, '.yml') }
fixtures.delete_if { |fx| !fixtures_to_load.index(fx)}
Fixtures.create_fixtures(fixtures_folder, fixtures)
Before do
Capybara.default_host = 'http://site.local'
NetworkConfig.initialize(:id => 1)
end
and in factories.rb:
require "factory_girl"
Factory.define :fact do |i|
i.factable_type "Follow"
i.factable_id "1"
i.factable_action "create"
i.is_processed "false"
i.processing_has_started "false"
i.processing_has_ended "false"
i.priority "1"
end
source
share