Je suis nouveau sur les rails et j'essaie de tester un contrôleur avec rspec. Mon premier test est quand l'action de show est invoquée, elle devrait rechercher une catégorie par l'URL.Contrôleur de rails de test avec rspec
Le problème est quand j'ajouter le code de stubbing, je reçois l'erreur suivante:
méthode non définie `find » pour #
mon test ressemble à ceci:
require 'spec_helper'
describe CategoriesController do
describe "GET /category-name/" do
before(:each) do
@category = mock_model(Category)
Category.stub!(:find).with(:first, :conditions => ["url = :url", {:url => "category-name"}]).and_return(@category)
end
it "should find the category by url" do
controller.show
Category.should_receive(:find).with(:first, :conditions => ["url = :url", {:url => "category-name"}]).and_return(@category)
end
end
end
Ah, très bien, merci. Maintenant le talonnage fonctionne correctement mais si j'essaie d'utiliser get "show" j'obtiens une erreur en disant: Aucune route ne correspond {: action => "show",: controller => "categories"} mais retourne les routes: root/{: controller => "categories",: action => "index"} /: url {: controller => "catégories",: action => "show"} –
nevermind, je l'ai trouvé. Je devais passer: url pour obtenir: montrer c'est pourquoi il n'a pas trouvé mon itinéraire. Merci de votre aide –