我在Rails之外使用一些ActiveRecord模型,我正在编写单元测试.在我的测试中,我希望能够使用灯具,并认为我会使用一些
rspec-rails功能.我不能简单地使用require“rspec-rails”,因为它有一些Rails依赖项,我不使用Rails.
这是我正在使用的spec_helper:
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
这是一个测试的例子
require 'spec_helper' describe Transaction do before :each do self.class.fixtures :users,:merchants end it "should do this and that" do ... end end