Ich versuche, einige Komponententests zum Testen meiner Rails-Helfer zu erstellen, aber ich kann mich nie erinnern, wie ich darauf zugreifen kann. Nervig. Vorschläge?Wie prüfe ich Helfer in Rails?
Antwort
In Schienen 3 können Sie dies (und in der Tat ist es, was der Generator erstellt):
require 'test_helper'
class YourHelperTest < ActionView::TestCase
test "should work" do
assert_equal "result", your_helper_method
end
end
Und natürlich the rspec variant by Matt Darby Werke in Schienen 3 zu
Stolen von hier: 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
[Stolen von Matt Darby, der auch in diesem Thread geschrieben.] Sie können in RSpec das gleiche tun wie:
require File.dirname(__FILE__) + '/../spec_helper'
describe FoosHelper do
it "should do something" do
helper.some_helper_method.should == @something
end
end
Sie können tun, die Gleiches in RSpec als:
es Zeiten wie diesen ist ich wünschte, ich zwei Antworten zustimmen könnten. Würde es Ihnen etwas ausmachen, in meiner Antwort unten in Ihre Antwort zu kopieren und einzufügen, und ich werde es zur Antwort auf diese Frage machen? – aronchick
Was ist Helfer? Ich bekomme eine undefinierte lokale Variable oder Methode. –
Ich habe auch die 'undefinierte lokale Variable oder den Methodenhelfer 'bekommen und dann die Anweisungen unter https://relishapp.com/rspec/rspec-rails/v/3-6/docs/helper-specs/helper- Spezifikation zu lösen. In meinem Fall hatte ich schon 'config.infer_spec_type_from_file_location!' Aber vergaß 'spec_helper' zu verlangen. Ich hoffe, das hilft! –
ist diese Diskussion etwas alt, aber ich dachte, dass ich mit antworten würde, was ich benutze:
# 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
Nur eine Warnung an Leute, die dies verwenden, gehören
ich das gerade geschrieben antworte auf einen anderen Thread mit der gleichen Frage. Ich habe folgendes in meinem Projekt gemacht.
require_relative '../../app/helpers/import_helper'
Beste aus 'ActionView abzuleiten :: TestCase' sonst haben Sie keinen Zugriff auf die' params' Hash –