2010-08-23 8 views
13

Je travaille actuellement sur un plugin Rails utilisé pour générer des méta-tags HTML spécifiques à l'iPhone. J'essaie d'utiliser ActionView :: TestCase pour les tests unitaires mais continue d'obtenir la même erreur. Voir le contenu du fichier et l'erreur ci-dessous. Toute idée ou aide serait grandement appréciée.Test des aides à la vue

test_helper.rb

require 'rubygems' 
require 'test/unit' 
require 'active_support' 
require 'action_view' 
require File.join(File.dirname(__FILE__), '..', 'lib', 'iphone_helper') 

iphone_test_helper.rb

require 'test_helper' 

class IphoneHelperTest < ActionView::TestCase 
    test 'br' do 
    tag = tag('br') 
    assert_tag_in tag, '<br />' 
    end 
end 

erreur

RuntimeError: In order to use #url_for, you must include routing helpers explicitly. For instance, `include Rails.application.routes.url_helpers 
+0

OK, cela peut être une question stupide, c'est probablement le cas, mais avez-vous essayé d'ajouter la ligne d'inclusion qu'il donne dans le message d'erreur? – jasonpgignac

+0

Oui J'ai essayé d'ajouter la ligne qui m'a donné une autre erreur 'constante non initialisée IphoneHelperTest :: Rails –

+0

Ok, juste deviner, mais peut-être la ligne url_helpers doit être incluse dans test-helper au lieu du cas de test individuel? –

Répondre

4

terrible et h solution de contournement Acky qui a fonctionné pour moi (depuis que je travaille sur un petit bijou et non dans un environnement plein de rails):

require 'ostruct' 

module ActionController::UrlFor 
    def _routes 
    helpers = OpenStruct.new 
    helpers.url_helpers = Module.new 
    helpers 
    end 
end 
1

Avez-vous essayé d'inclure the respective Module d'une manière ancienne ?:

include ActionDispatch::Routing::RouteSet 

Si un NameError est déclenché pour vous indiquer que ActionDispatch est inconnu, vous devrez peut-être require 'action_dispatch'.

0

Peut-être une question stupide, mais est le fait que le nom de la classe et le nom du fichier ne correspondent pas probablement à un problème (IphoneHelperTest vs iphone_test_helper.rb)? Parfois, cela mène à des classes qui ne sont pas chargées.