web-dev-qa-db-ja.com

Rails RSpecのヘルパーを含める方法

私はrspecでテストするためにいくつかのヘルパーを含めようとしていますが、運はありません。

私がしたこと:

specフォルダの下にsupport/helpers.rbファイルを作成しました。

support/helpers.rb

module Helpers
  include ActionView::Helpers::NumberHelper
  include ActionView::Helpers::TextHelper
end

spec_helper.rbでこのファイルを要求しようとしました。

# This file is copied to spec/ when you run 'Rails generate rspec:install'
require 'rubygems'
require 'spork'
require 'support/helpers'

Spork.prefork do
.
.
end

これにより、次のエラーが生成されます。

/spec/support/helpers.rb:2:in `<module:Helpers>': uninitialized constant Helpers::ActionView (NameError)

Rspecでこのヘルパーを使用するにはどうすればよいですか?

ありがとう。

40
Kleber S.

Railsスタックが利用可能になったら、通常、このコードを含めて、すべてのspec/supportサブディレクトリの下に必要です。

Spork.prefork do

  # ...

  Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f }

  RSpec.configure do |config|
    config.include MyCustomHelper

    # ...
  end
end

これには、すべての例のタイプ(コントローラー、モデル、ビュー、ヘルパーなど)にMyCustomHelperが含まれることに注意してください。 :typeパラメータを渡すことで、それを絞り込むことができます。

config.include MyControllerHelper, :type => :controller
36
Brandan

必要なモジュールをspecファイルに直接含めるだけです。

include PostsHelper
23
obfk