2017-02-14 1 views
1

je les spécifications suivantes:Gherkin: quand et définition de l'étape sont plus ou moins les mêmes

Scénario: Récupérer le document de licence client
Étant donné que je suis un client sans licence
Quand je récupérer le document de licence
Ensuite, le document de licence ne doit pas être récupéré

Dans ce scénario, le Quand et ensuite la définition de l'étape sont plus moins les mêmes. Ce que je veux spécifier avec ce scénario, c'est qu'il n'est pas possible de récupérer un document de licence lorsque le client n'a pas de licence.

Lorsque je récupère le document de licence implique que la récupération de la licence est possible.

Quelqu'un at-il une solution pour réécrire ce scénario?

+3

Peut-être que si vous changez le libellé, il correspond à ce que vous voulez. "Quand j'essaie de récupérer le document de licence" – pringi

+0

La question posée maintenant n'est pas tant sur la programmation que sur le choix du libellé correct. – sashoalm

Répondre

0

Dans de tels cas, la clause WHEN est redundent

Scénario: Récupérer le document de licence client
Étant donné que je suis un client sans permis
Lorsque je récupère le document de licence
Ensuite, le document de licence ne doit pas être récupéré

Mettez l'implémentation codebehind de la caluse alors dans try catch. En catch, postez un succès. Dans try block, à la fin, relancez une exception.

+1

À mon avis, il doit toujours y avoir une action. Je ne peux pas simplement oublier la déclaration ... Quand Une autre option: Étant donné que je suis un client sans licence Lorsque je tente de récupérer le document de licence Ensuite, le document de licence ne doit pas être récupéré Mais ça ne sonne pas bien parce que tu ne peux pas "essayer" quelque chose. Ce n'est pas une action. – Fischmeister

+0

Gherkin n'est pas d'être anglais grammaticalement correct. Il s'agit d'avoir un script de test qui soit facilement compris par les BA et qui puisse servir de documentation. Specflow ou tout autre impl implicite. traite donné/quand/alors comme même, en fait ils dépouillent juste le préfixe. Donc, il se résume à faire ce qui est simple. Vous pouvez avoir tous les trois statuts, attraper l'exception dans la clause When et vérifier l'existence de l'exception dans la clause then. Mais pourquoi écrire autant de code pour tester un autre code? Qui gardera les gardes? – inquisitive

0

Il n'y a pas de règle absolue sur la façon dont vous écrivez les scénarios, il n'y a pas non plus de format standard dans gherkin. Mais, gherkin est spécifiquement, pour avoir et la fabrication non technique comme les BA, les stackholders, les gestionnaires non techniques comprennent, ce que le test est vraiment. Plus vous utilisez les phrases avec précision, plus elles sont compréhensibles et significatives.

Si vous n'écrivez pas les étapes de manière compréhensible, il n'est pas nécessaire d'implémenter gherkin. Vous pouvez simplement le coder en ruby ​​ou en Java et laisser le BA etc .. comprendre le code par leurs propres moyens. Dans votre scénario, l'utilisation de When à la troisième étape est plus logique que then.

  • When est précisément pour décrire l'action clé à l'utilisateur/programme exécute.

  • Le but de Then étapes est d'observer les résultats.

    Scenario: Retrieve customer license document 
    Given I have a customer with no license 
    `When` I retrieve the license document 
    Then the license document should not be retrieved 
    
0

Vous avez donc un scénario comme celui-ci:

Scenario: Retrieve customer license document 
    Given I have a customer with no license 
    When I retrieve the license document 
    Then the license document should not be retrieved 

BDD est tout sur la communication entre l'équipe de développement et l'entreprise. Qu'est-ce que l'entreprise décrirait les comportements du système?

diraient-ils faire quelque chose comme ?:

Scenario: Customer has no license 
    Given Carl the Customer has no license 
    When Bernadette the Business User attempts to retrieve Carl the Customers licence document 
    Then Bernadette the Business User should see no license document for this customer 
0

Scénario: Vérifiez que le document de licence ne devrait pas être récupérer lorsque le client n'a pas de licence

Étant donné que je suis un client sans permis - Étant donné explique ce que vous avez

Quand je récupère le document de licence - Quand explique ce que vous essayez de faire

vérifiez que t Le document de licence ne doit pas être récupéré --- c'est le résultat final du scénario