gpt4 book ai didi

java - 通过不同的场景传递定义的变量是行不通的

转载 作者:行者123 更新时间:2023-11-30 10:27:04 26 4
gpt4 key购买 nike

尝试使用 PATCH 方法将 POST 场景的响应引用传递到另一个场景并更改其中一个属性并出现错误。调试源代码时,我发现当为一个场景调用 Scripts.assign 时,变量范围不会传递到另一个场景。

  • Karate 版本:0.5.0
  • Java 版本:1.8

测试的全部特征:

Feature: Products CRUD Test

Background:
* url demoBaseUrl

Scenario: fetch some products
Given path 'products'
When method get
Then status 200
And assert response.size() === 6

Scenario: add a product
Given path 'products'
And request {name: 'Iphone 7 Plus 128GB', description: 'Iphone 7 Plus Space Gray 128GB' }
When method post
Then status 200
And match response contains { id: '#number', name: 'Iphone 7 Plus 128GB', description: 'Iphone 7 Plus Space Gray 128GB'}
And def newProduct = response

Scenario: update a product
Given path 'products'
And def payload = {name: '#(newProduct.name)', description: '#(newProduct.description)'}
And set payload $.id = #(newProduct.id)
And match payload.id == (newProduct.id)
And request payload
When method patch
Then status 200
And match response contains {name: 'New Product Iphone 7'}

最佳答案

这是设计使然 - 如果您需要变量在功能中所有 Scenario 的范围内,请将其移至 Background。如果您希望此变量只初始化一次,请查看 callonce 关键字。

关于java - 通过不同的场景传递定义的变量是行不通的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45448351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com