2008-10-12 11 views
4

J'écris un plugin Rails qui construit un menu dans une vue. J'utilise link_to pour créer le lien et current_page? pour définir class="active" sur la page en cours. Je peux utiliser link_to.Comment tester avec le plugin RSpec a Rails en utilisant "link_to" et "current_page?"

Pour obtenir current_page? fonctionnant dans la vue, j'ai dû hériter de la classe actuelle (apparemment ActionView::Base) et cela fonctionne parfaitement bien. Malheureusement, cela interrompt totalement les tests avec RSpec.

J'appelle link_to et current_page? comme ceci:

def menu(options = {}, &block) 
    carte = my_menu.new(self) 
    yield carte 
    carte.to_s unless carte.empty? 
end 

class my_menu 
    include ActionView::Helpers::TagHelper 
    include ActionView::Helpers::UrlHelper 

    def initialize(base) 
    @base = base 
    end 

    def link 
    @base.link_to(name, url_options, html_options) 
    @base.current_page?(url_options) 
    end 
end 

et je reçois cette erreur avec RSpec: méthode non définie link_to » pour # < Spec :: Rails :: :: Exemple RailsExampleGroup :: Sous-classe_1: 0x24afa90>

Une indication?

Répondre

6
include ActionView::Helpers::UrlHelper 

Dans votre Spec devrait résoudre le problème. Ou dans votre spec_helper.rb. Je pense que c'est essentiellement ce que font les spécifications par défaut.

Questions connexes