2017-04-18 1 views
0

Je suis en train de tester une API REST XML et JSON avec Behat. Pour l'authentification, j'utilise Sentinel. Maintenant, si je me connecte à un utilisateur via Behat, et que je teste l'état de la session de connexion, l'API renvoie une réponse négative (par exemple, l'utilisateur n'est pas connecté). Lorsque je fais la même chose manuellement dans un navigateur en utilisant les requêtes AJAX, tout fonctionne correctement. Donc, le résultat final est correct mais le scénario échoue. Des suggestions sur la façon de surmonter ce problème?Test de session de connexion avec Behat

MISE À JOUR:

Je vais élaborer un peu plus sur la configuration de l'application, qui est basé sur Slim, Twig, Eloquent et Sentinel.

L'API a des routes à créer, afficher (oui ou non) et supprimer une session utilisateur. La connexion à un utilisateur est donc effectuée en POSTANT une adresse e-mail et un mot de passe au /session.json ou /session.xml. Dans les coulisses, le contrôleur appellera essentiellement Sentinel::authenticate(...).

Tout cela fonctionne très bien dans le navigateur. Si j'effectue une demande GET à /session.json, je verrai que l'utilisateur est connecté correctement. Si je suis les mêmes étapes avec Behat, j'obtiendrai la bonne valeur de retour sur la demande POST, alors Sentinel dit que l'utilisateur est connecté. Mais la requête GET me dira que l'utilisateur n'est pas connecté.

vous une idée, le scénario Behati ressemble à quelque chose comme ceci:

Scenario Outline: Logging in a user 
    Given I have a user with "<email>" and "<password>" 
    And I use the "<format>" format 
    When I log in the user with "<email>" and "<password>" 
    Then the "success" message should be "session.active" 

    Examples: 
    | email | password | format | 
    | [email protected] | 32165487 | xml | 
    | [email protected] | 89056734 | json | 

Dans le contexte que j'utilise la bibliothèque Requests pour exécuter effectivement les demandes. Donc, Behat agit comme un client régulier.

+0

Si possible, ajoutez du code sur la façon dont vous avez procédé à l'authentification et quelle erreur vous avez et quelle validation vous utilisez. Possible qui peut aider les autres à vous donner une réponse spécifique, le format réel de la question n'est pas très spécifique. – lauda

+0

J'ai ajouté un peu plus d'informations sur la configuration. C'est une version simplifiée, mais c'est essentiellement ce que ça fait. – wout

Répondre

0

Pourriez-vous également donner plus d'informations sur la configuration de behat? behat.yml et la version, les extensions?