Sto provando a costruire alcuni test unitari per testare i miei aiutanti Rails, ma non riesco mai a ricordare come accedervi. Fastidioso. Suggerimenti?Come posso testare gli helper in Rails?
risposta
in rails 3 si può fare questo (e in realtà è quello che crea il generatore):
require 'test_helper'
class YourHelperTest < ActionView::TestCase
test "should work" do
assert_equal "result", your_helper_method
end
end
E naturalmente the rspec variant by Matt Darby opere in Rails 3 anche
rubato da qui: 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
[rubati da Matt Darby, che ha anche scritto in questa discussione.] Si può fare lo stesso in RSpec come:
require File.dirname(__FILE__) + '/../spec_helper'
describe FoosHelper do
it "should do something" do
helper.some_helper_method.should == @something
end
end
È possibile fare la stessa in RSpec come:
require File.dirname(__FILE__) + '/../spec_helper'
describe FoosHelper do
it "should do something" do
helper.some_helper_method.should == @something
end
end
è momenti come questo vorrei poter approvare due risposte. Ti dispiacerebbe copiare e incollare nella mia risposta in basso nella tua risposta e farò in modo che risponda a questa domanda? – aronchick
Che cos'è l'aiuto? Ricevo 'variabile locale o metodo' non definito. –
Ho ottenuto anche la 'variabile locale non definita o l'helper del metodo ', quindi ho seguito le istruzioni su https://relishapp.com/rspec/rspec-rails/v/3-6/docs/helper-specs/helper- specifica da risolvere. Nel mio caso, ho già avuto "config.infer_spec_type_from_file_location!" Ma ho dimenticato di "require 'spec_helper''. Spero possa aiutare! –
Questo thread è una specie di vecchio, ma ho pensato di rispondere con quello che io 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
Un solo avvertimento per chi usa questo concetto include
ho appena postato questo rispondi su un altro thread facendo la stessa domanda. Ho fatto la seguente nel mio progetto.
require_relative '../../app/helpers/import_helper'
migliore derivare da 'ActionView :: TestCase' altrimenti non avrete accesso al' Hash params' –