J'écris des fichiers de test pytest qui sont attachés à des fichiers de fonctionnalités qui n'ont pas de tables d'exemples ou de pas. Ce que je ne comprends pas, c'est comment je peux utiliser mes variables inline (USER1 et USER2) qui sont des chaînes dans mes étapes Given, When et Then (exemple simple ci-dessous pour quand) pour que la première fois l'étape 'when' est exécutée il utilise John et la seconde fois que l'étape 'quand' est utilisée, il utilise Peter.Pytest comment utiliser les variables inline dans mes arguments step?
J'ai lu ces documents http://pytest-bdd.readthedocs.io/en/latest/#step-arguments et son dicton d'utiliser un analyseur? Peut-être que je suis mal compris les docs mais ce n'est pas vraiment clair comment je peux faire quelque chose comme ci-dessous. Peut-être que les utilisateurs doivent être dans un dict? {'user1': 'John', 'user2': 'Peter'}. Je comprends que l'utilisation d'une table d'exemples ou d'une table d'étapes dans le fichier de caractéristiques serait bien ici, mais dans ce cas, j'ai besoin de savoir comment faire cela en arrière-plan (dans le fichier pytest uniquement).
Merci à l'avance tous les
USER1 = 'John'
USER2 = 'Peter'
@scenario('User logs in')
def test_user_logs_in():
"""User logs in to website."""
pass
@given('I go to a website')
def I_go_to_a_website():
Do something
@When('{user} logs in')
def user_logs_in(user):
Do something with user1 the first time this step is used
Do something with user2 the second time this step is used.
@then('I should see the account page')
def should_see_account_page():
Do something