2017-09-18 1 views
2

Je suis nouveau dans Karate Framework. Je voudrais écrire un scénario comme ici:Comment rendre plus lisible et plus court un scénario de karaté

version 1 : 
Background: 
     * url 'someURL' 
     * def user1 = {id:'123', name:'Bill'} 

Given I have a user with id '123' 
When I create a new user with the same id 
Then I should get a response 'user with this id already exists' 

Mais dans Karaté je dois écrire comme ici:

version 2 : 
Background: 
    * url 'someURL' 
    * def user1 = {id:'123', name:'Bill'} 

Given request user1 
When method post 
Then status 201 
Given path response.id 
When method get 
Then response == {id:'123', name:'Bill'} 

    * def idUser1 = response.id 

Given request == {id: idUser1, name: 'Gary'} 
When method post 
Then response == {code: 400, message: 'user with this id already exists'} 

Comment puis-je obtenir la première version avec cadre de karaté? où je dois détailler les 3 lignes? ex: Given I have a user with id '123' et derrière (je ne sais pas où et comment) en détail avec

"Given request user1 
When method post 
Then status 201 
Given path response.id 
When method get" 
Then response == {id:'123', name:'Bill'} etc. 

Répondre

2

Je suis l'auteur du karaté. Si vous voulez la première version, Karate n'est pas pour vous. La première version n'est pas utile à moins que vous n'ayez vraiment besoin de votre produit-analyste ou de quelqu'un de non-technique pour être en mesure de lire (ou même créer) vos tests. Dans mon expérience, ce jamais se produit dans la pratique.

Même si vous décidez de descendre le chemin 1, vous devrez écrire beaucoup, beaucoup de code Java en tant que «Définitions d'étapes» du concombre. Ce qui est une perte de temps, et vous perdrez l'avantage des affirmations détaillées de karaté, dont des exemples sont donnés ci-dessous:

enter image description here

J'ai plus à dire sur ce sujet, mais mes pensées sont expliquées en détail dans cet article de blog - Yes, Karate is not true BDD.

Tous les meilleurs avec quelle que soit l'option que vous choisissez

+0

:) Je suis passé par l'API Java pour exécuter une fonction liée à l'interface utilisateur, mais je voulais savoir comment exécuter un scénario unique à partir de la fonction en utilisant cette méthode? – kushal

+0

Est-il si difficile de déplacer un scénario réutilisable dans un fichier de fonctionnalités autonome? Je ne comprends vraiment pas ce que vous essayez de faire. –

+0

ce que je sais que nous pouvons créer des fichiers de fonctionnalités autonomes pour un scénario différent, mais je me demandais comment exécuter un seul scénario sur plusieurs à partir d'un seul fichier de fonction .. J'espère que vous l'obtenez maintenant. – kushal