web-dev-qa-db-fra.com

Comment inclure Rails Helpers sur RSpec

J'essaie d'inclure des aides pour tester avec rspec mais pas de chance.

Ce que j'ai fait:

a créé un support/helpers.rb fichier dans mon dossier spec.

support/helpers.rb

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

et a essayé d'exiger ce fichier dans 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

cela génère l'erreur suivante:

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

Comment dois-je faire ces assistants pour être disponible avec Rspec?

Merci.

40
Kleber S.

J'inclus normalement ce code pour exiger tout sous mon spec/support sous-répertoire une fois la pile Rails disponible:

Spork.prefork do

  # ...

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

  RSpec.configure do |config|
    config.include MyCustomHelper

    # ...
  end
end

Notez que cela inclura MyCustomHelper dans tous les types d'exemples (contrôleurs, modèles, vues, aides, etc.). Vous pouvez réduire cela en passant un :type paramètre:

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

Incluez simplement le module dont vous avez besoin directement dans le fichier de spécifications:

include PostsHelper
23
obfk