Je suis coincé avec un problème lors du test de mes contrôleurs avec RSpec - l'appel response.body renvoie toujours une chaîne vide. Dans le navigateur, tout s'affiche correctement et les tests de fonctionnalités de concombre semblent bien faire les choses, mais RSpec échoue à chaque fois.
D'autres attentes sur l'objet de réponse, telles que response.should render_template('index')
passer sans aucun problème.
L'un d'entre vous a-t-il déjà rencontré ce problème? Peut-être que la réponse html peut être obtenue d'une autre manière?
Quant aux versions, Rails 2.1.0, RSpec 1.2.7.
la source
RSpec 2+: Si vous voulez vérifier de bout en bout - URL du corps de la réponse - utilisez une spécification de requête au lieu d'une spécification de contrôleur .
la source
Alors que je travaillais avec un problème similaire (qui m'a conduit à cette question), il m'est venu à l'esprit qu'il existe différentes façons d'écorcher le même chat. En d'autres termes, plutôt que de vérifier le corps du texte, vous pourrez peut-être vérifier le contenu du flash.
pourrait être une vérification équivalente à:
Pour moi, ce dernier semble un peu plus flexible car il fonctionnera dans les deux sens, mais il peut ne pas être approprié dans tous les cas.
À votre santé,
John
la source
Par défaut, la configuration RSpec-rails désactive le rendu des modèles pour les spécifications du contrôleur
L'un des moyens de résoudre ce problème consiste à activer le
render_views
paramètre dans votrerails_helper.rb
fichier. De cette façon, vous le rendez capable de fonctionner globalement dans tous vos tests.Ou utilisez la déclaration render_views pour un groupe individuel:
Vous pouvez en savoir plus ici .
la source