Ruby on rails 如何在Rails中测试助手?

Ruby on rails 如何在Rails中测试助手?,ruby-on-rails,ruby,helpers,Ruby On Rails,Ruby,Helpers,我试图构建一些单元测试来测试我的Rails助手,但我永远记不起如何访问它们。烦人的建议?从这里偷走: 您可以在RSpec中执行以下操作: require File.dirname(__FILE__) + '/../spec_helper' describe FoosHelper do it "should do something" do helper.some_helper_method.should == @something end end require File

我试图构建一些单元测试来测试我的Rails助手,但我永远记不起如何访问它们。烦人的建议?

从这里偷走:


您可以在RSpec中执行以下操作:

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

describe FoosHelper do

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

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

describe FoosHelper do

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

end

在rails 3中,您可以这样做(事实上,它是生成器创建的):

需要“测试助手”
类YourHelperTest

当然,在rails 3中也可以使用此线程,这有点旧,但我想我应该用我所使用的来回答:

# 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

我只是把这个答案贴在另一个问同样问题的帖子上。我在我的项目中做了以下工作

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

在这种情况下,我希望我能批准两个答案。你介意把我下面的答案复制粘贴到你的答案中,我会把它作为这个问题的答案吗?什么是帮助者?我得到了
未定义的局部变量或方法
。我也得到了
未定义的局部变量或方法助手
,然后我按照处的说明进行解析。在我的例子中,我已经有了
config.expert\u spec\u type\u from\u file\u location但忘记了
需要“spec\u helper”
。希望有帮助!对于使用此包含概念的人,只有一个警告。如果您不小心将其放在“descripe…”之前,它在单个测试中可以正常工作,但可能会由于双重包含而破坏您的测试套件。最好从
ActionView::TestCase
派生,否则您将无法访问
params
Hash
# 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
require_relative '../../app/helpers/import_helper'