2010-05-14 12 views

risposta

4

Io uso Machinist per questo (e Rails, anche. Odio infissi YAML.)

1

ActiveRecord include il supporto per infissi, basta legare in su in test_helper.rb.

# test/test_helper.rb 
require_relative '../app' 
require 'minitest/autorun' 
require 'active_record' 

ActiveRecord::Base.establish_connection(:test) 

class ActiveSupport::TestCase 
    include ActiveRecord::TestFixtures 
    include ActiveRecord::TestFixtures::ClassMethods 

    class << self 
    def fixtures(*fixture_set_names) 
     self.fixture_path = 'test/fixtures' 
     super *fixture_set_names 
    end 
    end 

    self.use_transactional_fixtures = true 
    self.use_instantiated_fixtures = false 
end 

Quindi è possibile utilizzare i dispositivi nelle classi di test.

# test/unit/blog_test.rb 
require_relative '../test_helper' 

class BlogTest < ActiveSupport::TestCase 
    fixtures :blogs 

    def test_create 
    blog = Blog.create(:name => "Rob's Writing") 
    assert_equal "Rob's Writing", blog.name 
    end 

    def test_find 
    blog = Blog.find_by_name("Jimmy's Jottings") 
    assert_equal "Stuff Jimmy says", blog.tagline 
    end 
end 

Configura Rake per cercare i test nei punti giusti.

# Rakefile 
require_relative './app' 
require 'rake' 
require 'rake/testtask' 
require 'sinatra/activerecord/rake' 

Rake::TestTask.new do |t| 
    t.pattern = "test/**/*_test.rb" 
end 

task default: :test 

ho postato un small example application per dimostrare con Sinatra, ActiveRecord, e attrezzature di prova.

Problemi correlati