1
空手フレームワークを使用して複数の入力を与えて応答を検証しようとしています。以下はサンプルフィーチャーファイルです。空手で複数の入力を使ってレスポンスを検証する方法
Scenario Outline: response validation
Given url 'urls?xyz=[<value>]'
When method get
Then status <status>
And match response == [{abc:'<response>'},{pqr:'<response1>'}]
Examples:
| value | status | response | response1 |
| 3 | 200 | 3 | null |
| * | 400 | | Invalid xyz |
| 65 | 200 | | |
| &^%^&% | 400 | | Invalid xyz |
でもない時に、両方の条件を検証することができ、パラメータの一つは、常に「ABC」または「PQR」のいずれかnullになります。以下は私が得ている例外です。 dynamic-params.feature
を:
12:28:11.204 [pool-1-thread-1] DEBUG com.intuit.karate - response time in milliseconds: 742
12:28:11.276 [pool-1-thread-1] ERROR c.i.k.cucumber.KarateJunitFormatter - failed feature: path.my
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.util.List
at com.intuit.karate.Script.matchNestedObject(Script.java:969)
at com.intuit.karate.Script.matchJsonPath(Script.java:871)
at com.intuit.karate.Script.matchNamed(Script.java:597)
at com.intuit.karate.StepDefs.matchNamed(StepDefs.java:463)
at com.intuit.karate.StepDefs.matchEquals(StepDefs.java:453)
at ✽.And match response == [{abc:'3'},{pqr:''}](path/my.feature:27)