2009-01-13 5 views

Trả lời

35

Trong thanh ray 3 bạn có thể thực hiện điều này (và thực tế đó là điều tạo ra máy phát):

require 'test_helper' 

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

Và tất nhiên the rspec variant by Matt Darby công trình đường ray 3 quá

11

bị đánh cắp từ đây: 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 

[bị đánh cắp từ Matt Darby, người cũng đã viết trong chủ đề này.] Bạn có thể làm điều tương tự trong RSpec như:

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

describe FoosHelper do 

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

end 
+0

Tốt nhất để lấy được từ 'ActionView :: TestCase' nếu không bạn sẽ không có quyền truy cập vào' params' Hash –

28

Bạn có thể làm giống như trong RSpec là:

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

describe FoosHelper do 

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

end 
+0

lần này như tôi ước tôi có thể phê duyệt hai câu trả lời. Bạn có nhớ sao chép và dán vào câu trả lời của tôi dưới đây vào câu trả lời của bạn và tôi sẽ làm cho nó câu trả lời cho câu hỏi này? – aronchick

+2

Trợ giúp là gì? Tôi nhận 'biến cục bộ không xác định hoặc phương thức'. –

+0

Tôi cũng nhận được 'biến cục bộ hoặc phương thức trợ giúp' không xác định, và sau đó tôi làm theo hướng dẫn tại https://relishapp.com/rspec/rspec-rails/v/3-6/docs/helper-specs/helper- spec để giải quyết. Trong trường hợp của tôi, tôi đã có 'config.infer_spec_type_from_file_location!' Nhưng quên 'require 'spec_helper''. Hy vọng rằng sẽ giúp! –

5

chủ đề này là loại cũ, nhưng tôi nghĩ rằng tôi muốn trả lời với những gì tôi sử dụng:

# 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

Chỉ một cảnh báo cho những người sử dụng điều này bao gồm khái niệm . Nếu bạn vô tình đặt điều này TRƯỚC KHI "mô tả ..." nó sẽ hoạt động tốt trong bài kiểm tra đơn lẻ đó, nhưng có thể nhấc lên bộ kiểm tra của bạn do có sự bao gồm gấp đôi. –

0

Tôi chỉ đăng này câu trả lời trên một chuỗi khác hỏi cùng một câu hỏi. Tôi đã làm như sau trong dự án của tôi.

require_relative '../../app/helpers/import_helper'