Подтвердить что ты не робот

Как проверить помощников в Rails?

Я пытаюсь построить некоторые модульные тесты для тестирования моих помощников Rails, но я никогда не помню, как их получить. Раздражает. Предложения?

4b9b3361

Ответ 1

В рельсах 3 вы можете сделать это (и на самом деле это то, что создает генератор):

require 'test_helper'

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

И, конечно, вариант rspec Мэтта Дарби работает и в рельсах 3

Ответ 2

Вы можете сделать то же самое в RSpec, что и:

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

describe FoosHelper do

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

end

Ответ 3

Украдены здесь: 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

[Украден у Мэтта Дарби, который также написал в этой теме.] Вы можете сделать то же самое в RSpec, как:

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

describe FoosHelper do

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

end

Ответ 4

Этот поток старый, но я думал, что отвечу тем, что я использую:

# 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

Ответ 5

Я только что опубликовал этот ответ в другой теме, задав тот же вопрос. В моем проекте я сделал следующее.

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