2009-01-13 15 views

Respuesta

35

En rieles 3 puede hacer esto (y de hecho es lo que crea el generador):

require 'test_helper' 

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

Y, por supuesto the rspec variant by Matt Darby obras en los carriles 3 también

11

robados desde aquí: 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 

[robados de Matt Darby, quien también escribió en este hilo.] Se puede hacer lo mismo en RSpec como:

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

describe FoosHelper do 

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

end 
+0

Mejor derivar de 'ActionView :: TestCase' de otro modo que no tendrá acceso a la' Hash params' –

28

Puede hacer lo Lo mismo en RSpec como:

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

describe FoosHelper do 

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

end 
+0

Es en momentos como este me gustaría poder aprobar dos respuestas. ¿Te importaría copiar y pegar en mi respuesta a continuación en tu respuesta y la convertiré en la respuesta a esta pregunta? – aronchick

+2

¿Qué es el ayudante? Obtengo 'variable local o método' indefinido '. –

+0

Obtuve la 'variable local indefinida o método auxiliar 'también, y luego seguí las instrucciones en https://relishapp.com/rspec/rspec-rails/v/3-6/docs/helper-specs/helper- especificación para resolver. En mi caso, ya tenía 'config.infer_spec_type_from_file_location!' Pero me olvidé de 'requerir 'spec_helper''. ¡Espero que ayude! –

5

Este hilo es un poco viejo, pero yo pensé que iba a responder con lo que yo uso:

# 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

Solo una advertencia para las personas que usan este concepto incluye . Si pone esto accidentalmente ANTES de "describir ..." funcionará bien en esa prueba única, pero puede arruinar su suite de pruebas debido a una doble inclusión. –

0

Me acaba de publicar este responde en otro hilo haciendo la misma pregunta. Hice lo siguiente en mi proyecto.

require_relative '../../app/helpers/import_helper' 
Cuestiones relacionadas