如何使空手道场景更具可读性和更短
How to make more readable and shorter a karate scenario
我是空手道框架的新手。我想写一个这样的场景:
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'}
如何获得第一个带有 Karate 框架的版本?我必须在哪里详细说明这 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.
我是空手道的作者。如果您想要第一个版本,那么空手道不适合您。第一个版本没有用,除非你 really really 希望你的产品负责人或业务分析师或非技术人员能够阅读 (甚至创建)你的测试。根据我的经验,这种 从来没有 在实践中发生。
即使您决定走路径 1,您也需要像 Cucumber "Step Definitions" 一样编写大量 Java 代码。这是浪费时间,您将失去空手道详细断言的好处,示例如下:
关于这个话题我还有很多话要说,但是我的想法在这个博客中有详细的解释 post - Yes, Karate is not true BDD.
无论您选择哪个选项,一切顺利:)
我是空手道框架的新手。我想写一个这样的场景:
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'}
如何获得第一个带有 Karate 框架的版本?我必须在哪里详细说明这 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.
我是空手道的作者。如果您想要第一个版本,那么空手道不适合您。第一个版本没有用,除非你 really really 希望你的产品负责人或业务分析师或非技术人员能够阅读 (甚至创建)你的测试。根据我的经验,这种 从来没有 在实践中发生。
即使您决定走路径 1,您也需要像 Cucumber "Step Definitions" 一样编写大量 Java 代码。这是浪费时间,您将失去空手道详细断言的好处,示例如下:
关于这个话题我还有很多话要说,但是我的想法在这个博客中有详细的解释 post - Yes, Karate is not true BDD.
无论您选择哪个选项,一切顺利:)