2015-08-28 1 views
2

Un de mes tests rspec échoue parce que je ne peux pas utiliser une méthode d'assistance sur un décorateur rendant une vue, alors que la vue fonctionne parfaitement en cours d'exécution du serveur, voici l'erreurRspec problèmes avec assistant sur décorateur sur test de vue

1) dashboard/index.html.haml render all translations 
    Failure/Error: render 
    ActionView::Template::Error: 
    undefined method `dashboard?' for #<#<Class:0x0000000a9d1020>:0x0000000c2286f0> 

la méthode suivante est une simple vérification booléen appelé dans une méthode de décorateur appelé de la vue rendue:

items << h.link_to(...) if h.dashboard? 

Et la méthode d'assistance:

def dashboard? 
    controller_name == "dashboard" 
end 

je peux importer le module d'aide dans le décorateur mais les changements d'erreur à nom_contrôleur est non défini, donc je suppose que ma question est en deux parties:

Un, comment puis-je obtenir la méthode d'aide à travailler lorsque le Le décorateur est appelé à partir d'une vue rendue à travers Rspec, et deux, comment puis-je définir le nom du controller pour fonctionner dans le test Rspec.

+0

Toute solution à ce sujet? J'ai le même problème mais en utilisant l'aide current_user de Devise dans le décorateur:/ – alexmarles

Répondre

0

Votre test recherche une méthode appelée dashboard? qui n'apparaît pas dans votre code.

Vous pouvez mettre à jour votre test pour rechercher la méthode moderators_dashboard?

Ou

changement def moderators_dashboard? à def dashboard?

+0

Je suppose que j'ai effacé quelque chose autour du collage du code, mais il n'y a pas de tableau de bord ?, c'est moderators_dashboard? Partout, je vais l'éditer pour plus de clarté –