Je suis singe Patching Capybara :: Session avec une méthode Set_headers qui assigne à Capybara :: racktest :: Attribut d'options du navigateur (que j'ai changé d'Att_Reader vers un attr_accessor).
dans ma demande Spec, je fais: strong> p> < PRE> XXX PRE> Cela fonctionne, mais je me demande s'il y a une meilleure façon, il semble qu'un peu plus d'excédent pour pouvoir définir une télécommande personnalisée / diste_addr sur une demande. Toute pensée? P> p>
3 Réponses :
Si vous souhaitez que les en-têtes soient globalement définis sur toutes les demandes, vous pouvez utiliser quelque chose comme: Voir le rack_test_driver_spec.rb code> dans capybara 1.1.2 et le numéro de Capybara # 320, Configuration des en-têtes HTTP . P> P>
Avez-vous besoin d'ajouter une en-tête personnalisée dans une demande spécifique dans RSPEC à l'aide de Capybara? J'ai utilisé cela dans des tests d'acceptation. C'était le meilleur moyen pour moi d'utiliser une méthode avec des données d'en-tête spécifiques. Vous pouvez évaluer l'élément spécifique sur la page de réponse. Voir mon exemple ci-dessous: J'espère que cela aide. p> p>
J'ai découvert une possibilité de modifier les en-têtes lorsque vous utilisez le pilote Il y a une méthode Voici un exemple de ma spécification de fonctionnalité avec des en-têtes personnalisés forts>: p> P.s. Je n'ai pas encore testé avec le pilote de sélénium. Mais probablement cela fonctionne de la même manière. P> p> Capybara par défaut :: racktest Code>.
capybara :: racktest :: Navigateur # processus code > qui prépare une demande avant l'envoi de finaly ( https: // www. rubydoc.info/gems/capybara/capybara%2FrackTest%2FBrowser:Process ). Comme vous pouvez le constater dans le code, les en-têtes de demande sont construits à partir des options
[: les en-têtes] code>. Les options
code> font réellement référence au pilote
.OPTIONS.OPTIONS code>. Donc, vous pouvez définir des en-têtes en modifiant ce hachage. P>