J'ai des méthodes de contrôleur qui ressemblent à ceci:Rails: Lors du test de contrôleurs avec RSpec, comment les empêcher de rediriger?
class TestController < ApplicationController
def testAction
render :json => { 'success'=>1 }.to_json
end
end
Quand je charge cette action dans le navigateur, je reçois ce que je pense: {"success":1}
Lors du test avec RSpec, cependant, response.body
me donne '<html><body>You are being <a href="https://test.host/test/testAction">redirected</a>.</body></html>'
J'ai remarqué que cette redirection bizarre se produit avec tous mes contrôleurs. Comment puis-je empêcher cette redirection de se produire, afin que je puisse contrôler le corps de la réponse?
Merci!
----------------------- EDIT:
Toute idée pourquoi l'échec du test suivant se passe?
# app/controllers/test_controller.rb
def test
flash[:notice] = 'test'
end
# spec/controllers/test_controller_spec.rb
describe TestController, "calling the test() method" do
it "should set the flash notice" do
put :test
flash[:notice].should_not be_blank
end
end
# result
'TestController calling the test() method should set the flash notice' FAILED
expected blank? to return false, got true
Merci pour la réponse. C'est logique, mais j'ai créé un test plus simple pour voir si je pouvais faire fonctionner les choses. Je l'ai édité au fond de ma question. – NudeCanalTroll
ce n'est pas correct, il est très typique dans les tests du contrôleur pour affirmer le résultat d'une réponse .. –