Download ActiveRecord Adapters with RSpec without Rails

I use some ActiveRecord models outside of Rails , for which I write unit tests. In my tests, I would like to use tools and thought that I would use some of rspec-rails for this. I can't just use require "rspec-rails" because it has some Rails dependencies and I don't use Rails.

Here is the spec_helper I'm using:

 require 'active_record' require 'active_record/fixtures' require 'active_support' require 'rspec/rails/extensions/active_record/base' require 'rspec/rails/adapters' require 'rspec/rails/fixture_support' # Includes ActiveRecord::TestFixtures # into the RSpec config require 'my_models' # Setup database connection environment = "test" configuration = YAML::load(File.open('config/database.yml')) ActiveRecord::Base.establish_connection(configuration[environment]) RSpec.configure do |config| config.fixture_path = File.expand_path("../../test/fixtures", __FILE__) # If you're not using ActiveRecord, or you'd prefer not to run each of your # examples within a transaction, remove the following line or assign false # instead of true. config.use_transactional_fixtures = true # Run specs in random order to surface order dependencies. If you find an # order dependency and want to debug it, you can fix the order by providing # the seed, which is printed after each run. # --seed 1234 config.order = "random" # Run each test inside a DB transaction config.around(:each) do |test| ActiveRecord::Base.transaction do test.run raise ActiveRecord::Rollback end end 

end

And here is a test example

 require 'spec_helper' describe Transaction do before :each do self.class.fixtures :users, :merchants end it "should do this and that" do ... end end 

The problem is that in this way the luminaires do not load. I looked at the rspec-rails code but cannot figure out which module I should extend or the method I should name.

+7
source share
1 answer

After diving into the active recording code, I realized that the reason the lights were not loaded was because I did not install ActiveRecord::Base.configurations . Bug fixed:

 configuration = YAML::load(File.open('config/database.yml')) ActiveRecord::Base.configurations = configuration 
+5
source

All Articles