空手道测试框架:只有一个断言使用示例
Karate test framework: Only one assert using Examples
假设我想测试我的 api 是否删除了重复的条目。
我目前的步数是:
1) Post 相同的 JSON 请求多次使用示例,每个请求在不同的场景中:
Scenario Outline:
Given path '/endpoint'
And request
"""
{
"field1": <field1>
}
"""
When method post
Then status 200
Examples:
| field1 |
| value1 |
| value1 |
2) 在新场景中断言没有重复:
Scenario:
Given path '/other_endpoint'
When method get
Then match response.values == [ "value1" ]
这里的问题是我怀疑不能保证场景顺序。有没有没有 "unrolling" 循环的方法来解决这个问题(见下面的例子)?
Scenario:
Given path '/endpoint'
And request
"""
{
"field1": value1
}
"""
When method post
Then status 200
Given path '/endpoint'
And request
"""
{
"field1": value1
}
"""
When method post
Then status 200
Given path '/other_endpoint'
When method get
Then match response.values == [ "value1" ]
PD:我的实际用例需要示例中至少有 20 个条目才能填充非常大的 JSON,因此 "unrolling" 循环不是解决方案。
提前致谢。
尝试此处所述的数据驱动测试的替代形式:https://github.com/intuit/karate#data-driven-features
所以你可以有第二个功能文件,并为 "loop" 调用它,并在循环之后执行你想要的断言。
假设我想测试我的 api 是否删除了重复的条目。
我目前的步数是:
1) Post 相同的 JSON 请求多次使用示例,每个请求在不同的场景中:
Scenario Outline:
Given path '/endpoint'
And request
"""
{
"field1": <field1>
}
"""
When method post
Then status 200
Examples:
| field1 |
| value1 |
| value1 |
2) 在新场景中断言没有重复:
Scenario:
Given path '/other_endpoint'
When method get
Then match response.values == [ "value1" ]
这里的问题是我怀疑不能保证场景顺序。有没有没有 "unrolling" 循环的方法来解决这个问题(见下面的例子)?
Scenario:
Given path '/endpoint'
And request
"""
{
"field1": value1
}
"""
When method post
Then status 200
Given path '/endpoint'
And request
"""
{
"field1": value1
}
"""
When method post
Then status 200
Given path '/other_endpoint'
When method get
Then match response.values == [ "value1" ]
PD:我的实际用例需要示例中至少有 20 个条目才能填充非常大的 JSON,因此 "unrolling" 循环不是解决方案。
提前致谢。
尝试此处所述的数据驱动测试的替代形式:https://github.com/intuit/karate#data-driven-features
所以你可以有第二个功能文件,并为 "loop" 调用它,并在循环之后执行你想要的断言。