Comment tester cette before_filter fonctionne correctement avec RSpec dans les Rails

J'ai un check_user_access_control before_filter dans mon ApplicationController qui vérifie la session de l'utilisateur des rôles et des autorisations avant il lui permet de à travers. Je suis en train d'écrire quelques tests et je ne peux pas trouver un bon moyen de le faire.

Pour l'indice simple des actions je n'ai tout simplement:

it "allows access to mod" do
  login_as(Factory(:mod)) # this is a spec helper
  get :index
  response.code.should == "200"
end

et il fonctionne très bien. Pour modifier/show/créer et à d'autres mesures de certains paramètres, les interactions avec la base de données et possible de rediriger après leur exécution, il a besoin de beaucoup trop d'autres choses à être écrasé.

Est-il un moyen de tester si une action spécifique a été appelé après la before_filters? Je suis à la recherche de quelque chose comme controller.should_receive(:action_name) (qui ne fonctionne pas) pour remplacer le response.code.should == "200" ligne avec.

versions: rails 3.0.4 et rspec 2.5

J'ai essayé une autre approche. Nous avons une méthode dans ApplicationController appelé redirect_to_login que je suis maintenant vérifier avec controller.should_receive(:redirect_to_login) et les œuvres.

Lorsqu'il détecte correctement si l'utilisateur est autorisé ou pas, c'talons de la méthode, ce qui signifie que le contrôleur de l'action est exécutée si l'utilisateur est ou non autorisé. En outre, l'action dépend de paramètres et de base de données et nous ne voulons pas que.

Si maintenant je stub de la méthode d'action avec controller.stub!(:action_name), l'action n'est pas exécutée, mais RSpec est toujours à la recherche pour le modèle. Ainsi, certaines actions n'ont pas de modèles, ils ont juste à la fin avec un redirect_to :action => :somewhere_else ou render :text => "foobar" qui, à ce stade, nous ne nous soucions pas.

Dans le tri, ce dont j'ai besoin maintenant est de trouver une façon de faire de RSpec PAS s'inquiéter sur le modèle de l'existence.

OriginalL'auteur Kostas | 2011-05-04