我是空手道框架的新手。我想写一个这样的场景:
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行?例如: <{1}}后面(我不知道在哪里和如何)用
详细说明Given I have a user with id '123'
答案 0 :(得分:2)
我是空手道的作者。如果你想要第一个版本,空手道不适合你。除非确实 确实希望您的产品所有者或业务分析师或非技术人员能够阅读(甚至创建)您的测试,否则第一个版本无效。根据我的经验,这永远不会在实践中发生。
即使您决定沿着路径1前进,您也需要编写许多Java代码作为Cucumber“Step Definitions”。这是浪费时间,你将失去空手道详细断言的好处,其中的例子如下:
我在这个主题上还有更多的话要说,但我的想法在这篇博客文章Yes, Karate is not true BDD中有详细解释。
您选择的任何选项都是最好的:)