2010-05-14 5 views
7

मैं रूबी/रेल दुनिया से आ रहा हूं। मुझे सिनात्रा परियोजना (रैक :: टेस्ट के साथ) पर स्थापित परीक्षण मिल रहा है। मैं आमतौर पर परीक्षण में फिक्स्चर का उपयोग करता हूं। क्या सिनात्रा के बराबर है?सिनात्रा में - क्या कोई परीक्षण फिक्स्चर का उपयोग करता है? आपका परीक्षण सूट कैसे स्थापित किया जाता है?

लोग अपने सिनात्रा परीक्षण सूट कैसे स्थापित करते हैं (मूल नरकवर्ल्ड उदाहरण के बाहर जो सिनात्रा परीक्षणों के लिए मुझे मिल सकता है)।

धन्यवाद!

उत्तर

4

मैं इसके लिए Machinist का उपयोग करें (और रेल, भी। YAML जुड़नार नफरत।)

1

ActiveRecord जुड़नार के लिए समर्थन शामिल, तो आप सिर्फ 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 

फिर आप अपने परीक्षण कक्षाओं पर जुड़नार का उपयोग कर सकते हैं।

# 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 

सही जगहों पर अपने परीक्षणों को देखने के लिए रेक को कॉन्फ़िगर करें।

# 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 

मैं सिनात्रा, ActiveRecord, और परीक्षण जुड़नार का उपयोग कर प्रदर्शित करने के लिए एक small example application पोस्ट किया है।

संबंधित मुद्दे