2009-01-13 13 views
36

मैं अपने रेल सहायकों का परीक्षण करने के लिए कुछ यूनिट परीक्षण बनाने की कोशिश कर रहा हूं, लेकिन मुझे याद नहीं है कि उन्हें कैसे पहुंचाया जाए। कष्टप्रद। सुझाव?मैं रेल में मददगारों का परीक्षण कैसे करूं?

उत्तर

35

रेल 3 आप यह कर सकते हैं (और वास्तव में यह क्या जनरेटर बनाता है):

require 'test_helper' 

class YourHelperTest < ActionView::TestCase 
    test "should work" do 
    assert_equal "result", your_helper_method 
    end 
end 

और निश्चित रूप से the rspec variant by Matt Darby रेल 3 में काम करता है भी

11

यहां से चोरी: http://joakimandersson.se/archives/2006/10/05/test-your-rails-helpers/

require File.dirname(__FILE__) + ‘/../test_helper’ 
require ‘user_helper’ 

class UserHelperTest < Test::Unit::TestCase 

include UserHelper 

def test_a_user_helper_method_here 
end 

end 

[चोरी मैट डार्बी, जो भी इस सूत्र में लिखा से।] आप के रूप में RSpec में भी ऐसा ही कर सकते हैं:

require File.dirname(__FILE__) + '/../spec_helper' 

describe FoosHelper do 

    it "should do something" do 
    helper.some_helper_method.should == @something 
    end 

end 
+0

बेस्ट 'ActionView से प्राप्त करने के :: TestCase' अन्यथा आप' params' हैश –

28

आप क्या कर सकते हैं RSpec में एक ही रूप में:

require File.dirname(__FILE__) + '/../spec_helper' 

describe FoosHelper do 

    it "should do something" do 
    helper.some_helper_method.should == @something 
    end 

end 
+0

तक पहुंच नहीं इसे इस तरह बार है होगा काश मैं दो जवाब को मंजूरी सकता है। क्या आप नीचे दिए गए मेरे उत्तर में अपने उत्तर में प्रतिलिपि बनाना और पेस्ट करना चाहते हैं और मैं इसे इस प्रश्न का उत्तर दूंगा? – aronchick

+2

सहायक क्या है? मुझे 'अपरिभाषित स्थानीय चर या विधि 'मिलता है। –

+0

मुझे 'अपरिभाषित स्थानीय चर या विधि सहायक 'मिला, और फिर मैंने https://relishapp.com/rspec/rspec-rails/v/3-6/docs/helper-specs/helper- पर निर्देशों का पालन किया। हल करने के लिए कल्पना। मेरे मामले में, मेरे पास पहले से 'config.infer_spec_type_from_file_location था!' लेकिन 'spec_helper' की आवश्यकता 'भूल गई। उम्मीद है की वो मदद करदे! –

5

यह धागा वर्ष की तरह है, लेकिन मैंने सोचा कि मैं मैं क्या उपयोग के साथ उत्तर चाहते हैं:

# encoding: UTF-8 

require 'spec_helper' 

describe AuthHelper do 

    include AuthHelper # has methods #login and #logout that modify the session 

    describe "#login & #logout" do 
    it "logs in & out a user" do 
     user = User.new :username => "AnnOnymous" 

     login user 
     expect(session[:user]).to eq(user) 

     logout 
     expect(session[:user]).to be_nil 
    end 
    end 

end 
+0

इसका उपयोग करने वाले लोगों को सिर्फ एक चेतावनी में अवधारणा शामिल है। यदि आपने गलती से इसे "वर्णन ..." से पहले रखा है, तो वह उस एकल परीक्षण में ठीक काम करेगा, लेकिन डबल-इन के कारण आपके परीक्षण सूट को मक्का कर सकता है। –

0

मैं सिर्फ इस पोस्ट एक ही प्रश्न पूछने के लिए एक और धागे पर जवाब। मैंने अपनी परियोजना में निम्नलिखित किया।

require_relative '../../app/helpers/import_helper' 
संबंधित मुद्दे