7
votes

Quelle est la meilleure façon de définir des en-têtes de demande personnalisés lors de l'utilisation de Capybara dans RSPEC Demander des spécifications?

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).

les patchs: xxx

dans ma demande Spec, je fais: < PRE> XXX

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?


0 commentaires

3 Réponses :


1
votes

Si vous souhaitez que les en-têtes soient globalement définis sur toutes les demandes, vous pouvez utiliser quelque chose comme: xxx

Voir le rack_test_driver_spec.rb dans capybara 1.1.2 et le numéro de Capybara # 320, Configuration des en-têtes HTTP .


0 commentaires

1
votes

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: XXX

J'espère que cela aide.


0 commentaires

1
votes

J'ai découvert une possibilité de modifier les en-têtes lorsque vous utilisez le pilote Capybara par défaut :: racktest .

Il y a une méthode capybara :: racktest :: Navigateur # processus 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] . Les options font réellement référence au pilote .OPTIONS.OPTIONS . Donc, vous pouvez définir des en-têtes en modifiant ce hachage.

Voici un exemple de ma spécification de fonctionnalité avec des en-têtes personnalisés : xxx

testé avec :

  • Capybara: 3.13.2 (pilote de racktest)
  • RSPEC: 3.8
  • Rails: 5.2.2

    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.


0 commentaires