2015-08-31 1 views
2

J'ai une vue à app/views/debtors/index.html.erb qui rend un partiel partiel situé à app/views/application/_advanced_search.html.erb.Stubbing une commune partielle dans une spécification de vue dans Rails

Je voudrais tester la vue index mais aussi besoin de talonner le partiel ci-dessus. Comment puis-je atteindre cet objectif? J'ai essayé:

  • stub_template '_advanced_search' => 'Stubbed', mais le partiel n'a pas été trouvé;
  • stub_template '_advanced_search.html.erb' => 'Stubbed', le même que ci-dessus;
  • view.lookup_context.view_paths.push 'app/views/application' et stub_template '_advanced_search' => 'Stubbed', mais alors il a commencé à se plaindre d'une variable indéfinie utilisée dans le partiel.

J'ai également essayé d'utiliser le chemin complet vers le partiel, mais toujours pas de chance, il a commencé à dire que le partiel est manquant.

Quelle est la bonne façon de céder une partie commune dans une application Rails?

+0

qu'en est-il de l'application 'stub_template '/ _advanced_search' => 'x''? – dax

+0

Il dit que le partiel est manquant. Il regarde dans '/ home/user/project/app/views' et ensuite dans' application/_advanced_search_controls' et 'application/_advanced_search'. – linkyndy

+0

bizarre ... vous pouvez voir [la mise en œuvre] (https://github.com/rspec/rspec-rails/blob/a2a37ee192828ee81084d966e6f2f6f68d9773c0/lib/rspec/rails/example/view_example_group.rb#L73) est juste en poussant votre talon au début du tableau des chemins de vue. peut-être essayer de regarder ce tableau de chemins de vue? sinon je devinerais que les rails se chargent automatiquement de la magie. – dax

Répondre

0

Parfois, Ruby dit «Partiellement introuvable» car il semble y avoir une erreur dans votre fichier partiel, une erreur Ruby.

Je vous suggère d'afficher d'abord tout code HTML codé en dur qui ne contient pas de code Ruby et si cela fonctionne, il semble y avoir une erreur dans votre partiel.

J'ai également fait face à ce problème plus tôt.

+0

J'utilise actuellement ce partiel depuis un certain temps mais je n'ai pas eu de tests pour les vues. Maintenant, j'ai commencé à écrire des vues et à résoudre ce problème. Donc je ne pense pas qu'il y ait un problème avec le partiel. – linkyndy