Comment tester la send_data méthode dans les Rails?
Comment puis-je tester le send_data
méthode dans les Rails?
OriginalL'auteur Pavel Druzyak | 2010-06-17
Vous devez vous connecter pour publier un commentaire.
Comment puis-je tester le send_data
méthode dans les Rails?
OriginalL'auteur Pavel Druzyak | 2010-06-17
Vous devez vous connecter pour publier un commentaire.
Quand j'ai lu sa question, je l'ai pris veux dire, comment il a assurez-vous que send_data envoyé la chaîne/tout ce qu'il demande. Pas tellement pour tester l'envoi mais de s'assurer pour sa tranquillité d'esprit que la méthode qu'il a envoyé, il n'était pas vide. moqueur, comme vous l'avez fait, n'est pas vraiment lui qui en résultent.
Peut-être que vous pouvez vous assurer que votre chaîne n'est pas vide, ou quelque chose comme ça. De cette façon, vous ne sont pas des tests send_data, mais que, quelle que soit send_data obtient est la façon dont vous voulez qu'il regarde.
Dans mon cas (ce qui m'a amené à cette question) serait
Certains amateur de personnes utilisent ruby débogueur et le poisson!t... votre kilométrage peut varier.
Contrôleur de test est sur simulacres? étrange déclaration et pour le pire, une baisse de vote. Lorsque vous vous moquez, vous n'êtes pas tester quelque chose, mais le fait que send_data ai appelé et il continue à le faire. Dans mon exemple, que l'OP a dit, nous faisons des essais que send_data est en train de faire c'est du boulot. un test pour la tranquillité d'esprit.
L'utilisation d'un test d'intégration. les tests unitaires ne sont pas en place pour les tests send_data œuvres.
Eh bien, si vous obtenez pédant, je suis en fait ce qui suggère que ce test serait un test fonctionnel, si vous êtes à l'aide de Rails de langage, mais quel que soit le lieu de l'épreuve est situé à, à nouveau, la réponse des peuplements.
OriginalL'auteur pjammer
Tout d'abord regarder le source de la
send_data
méthode http://api.rubyonrails.org/classes/ActionController/DataStreaming.html#method-i-send_dataSelon que,
send_data
il suffit de tout mettre àrender :text => '...'
avec des options supplémentaires.Je pense que vous pouvez le faire de cette façon:
OriginalL'auteur Artur Małecki
Vous ne devriez pas besoin de tester le comportement de
send_data
lui-même, principalement parce que ce qui est couvert par les Rails propres tests. Cela permettra également de faire vos tests à exécuter lentement (éventuellement). Ce que vous devez faire (de mon point de vue) est de talon la send_data méthode, quelque chose comme:controller.expects(:send_data).with("foo").returns(:success)
Espère que cela aide.
send_data
changements (par exemple, avec un Rails de mise à niveau), vous ne savez pas que votre code est cassé.c'est très discutable. Les objets fantaisie de code qui ne vous appartient pas est souvent considéré comme le Seul Bon Moyen pour avoir de vrais tests unitaires. Cependant, l' "en amont peut changer" est quelque chose que vous voulez prendre dans les tests. Mais pas dans l'unité-tests. Vous devriez avoir des tests d'intégration. (Ce qui, est, tout comme votre point, juste un avis, il y en a beaucoup
"Les objets fantaisie de code qui ne vous appartient pas est souvent considéré comme le Seul Bon Moyen pour avoir de vrais tests unitaires." de référence? J'aimerais lire plus sur ce bien (à long terme) pour les personnes. À l'appui de ma propre affirmation ci-dessus: jmock.org/oopsla2004.pdf et la poignée des résultats sur google.com/?#safe=active&q=+maquette+types++
(fwiw j'ai quelques expériences sur les nouvelles façons de faire les contrôleurs qui est plus classique de l'unité de test: github.com/xaviershay/poniard )
OriginalL'auteur jpemberthy
Vous pouvez le tester indirectement, par la vérification de la valeur de
Content-Transfer-Encoding
en-tête.ou
peut-être
@controller
va travailler pour vousOriginalL'auteur Tsutomu