3

我是空手道框架的新手。我想写一个像这里这样的场景:

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'

但在空手道中,我必须像这样写:

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'}

如何使用空手道框架获得第一个版本?我必须在哪里详细说明 3 行?例如: Given I have a user with id '123'在后面(我不知道在哪里以及如何)详细说明

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

1 回答 1

3

我是空手道的作者。如果您想要第一个版本,空手道不适合您。第一个版本没有用,除非您真的希望 您的产品所有者或业务分析师或非技术人员能够阅读(甚至创建)您的测试。根据我的经验,这在实践中从未发生过。

即使您决定采用路径 1,您也需要编写大量 Java 代码作为 Cucumber“步骤定义”。这是浪费时间,您将失去空手道详细断言的好处,示例如下:

在此处输入图像描述

关于这个话题我还有很多话要说,但我的想法在这篇博文中有详细解释——是的,空手道不是真正的BDD

无论您选择哪个选项,一切顺利:)

于 2017-09-19T02:44:28.900 回答