1
POSTシナリオの応答の参照をPATCHメソッドで別のシナリオに渡し、プロパティの1つを変更してエラーを取得しようとしています。ソースコードをデバッグすると、あるシナリオでScripts.assignが呼び出されたときに、変数スコープが別のシナリオに渡されないことがわかりました。異なるシナリオで定義された変数を渡すことができません
- 空手のバージョン: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'}
def varをバックグラウンドに移動しようとしましたが、assignが2回発生します。私はバックグラウンドでスコープ変数を定義しようとしますが、各シナリオ評価でスコープ変数が再定義されます。 def scopeでvarを一度呼び出すと、この問題は解決されますか? –
callonceで変数をバックグラウンドで宣言するにはどうすればよいですか? –
@ViniciusSouzaあなたは空手デモを見ることができます - 例の1つはcallonceです:https://github.com/intuit/karate/tree/master/karate-demo –