42

我正在尝试构建一些单元测试来测试我的 Rails 助手,但我永远不记得如何访问它们。恼人的。建议?

4

5 回答 5

43

在 rails 3 你可以这样做(实际上它是生成器创建的):

require 'test_helper'

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

当然,Matt Darby 的 rspec 变体也适用于 rails 3

于 2011-04-07T13:18:17.940 回答
30

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

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

describe FoosHelper do

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

end
于 2009-01-13T23:25:28.097 回答
11

从这里被盗: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

[从 Matt Darby 那里偷来的,他也在这个线程中写道。]你可以在 RSpec 中做同样的事情:

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

describe FoosHelper do

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

end
于 2009-01-13T20:07:07.433 回答
5

这个线程有点旧,但我想我会用我使用的东西来回复:

# 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
于 2013-03-13T15:41:50.187 回答
0

我刚刚在另一个帖子上发布了这个答案,问了同样的问题。我在我的项目中做了以下事情。

require_relative '../../app/helpers/import_helper'
于 2013-04-08T21:35:17.667 回答