2017-06-21 51 views
0

只是想了解協議。我們使用的是spring引導,所以當然我使用pact-jvm-provider-spring-mvc來嘗試簡單的設置。 我的協議文件是一個簡單 { "consumer": { "name": "MyConsumer" }, "provider": { "name": "MyProvider" }, "interactions": [ { "description": "a request for projects", "providerState": "i have a list of projects", "request": { "method": "GET", "path": "/dogs", "headers": { "Accept": "application/json" } }, "response": { "status": 200, "headers": { "Content-Type": "application/json" }, "body": [ { "dog": "1" } ] } } ], "metadata": { "pactSpecification": { "version": "2.0.0" } } } 我添加這些依賴關係到我的gradle這個編譯:協議,JVM提供商彈簧-MVC json4s例外

```

testCompile組: 'com.reagroup',名稱:「協議,JVM提供商 - 彈簧mvc_2.10' 版本: '0.4.0' testCompile組: 'au.com.dius',名稱: '協議-JVM-provider_2.10',版本: '2.4.18' testCompile組:「AU。 com.dius',名稱:'pact-jvm-provider-junit_2.11',版本:'3.4.1' ```

測試類沒有做太多,只是在s中創建一個控制器引發時尚。

但我從運行它得到的是

```

org.json4s.package $ MappingException:在函數體中定義case類不被支持。

at org.json4s.reflect.package$.fail(package.scala:96) 
at org.json4s.reflect.Reflector$ClassDescriptorBuilder$$anonfun$9.apply(Reflector.scala:115) 
at org.json4s.reflect.Reflector$ClassDescriptorBuilder$$anonfun$9.apply(Reflector.scala:115) 
at scala.util.control.Exception$Catch$$anon$2.apply(Exception.scala:137) 
at scala.util.control.Exception$Catch$$anon$2.apply(Exception.scala:135) 
at scala.util.control.Exception$Catch.apply(Exception.scala:106) 
at org.json4s.reflect.Reflector$ClassDescriptorBuilder.constructorsAndCompanion(Reflector.scala:115) 
at org.json4s.reflect.Reflector$ClassDescriptorBuilder.result(Reflector.scala:156) 
at org.json4s.reflect.Reflector$.createDescriptor(Reflector.scala:50) 
at org.json4s.reflect.Reflector$$anonfun$describe$1.apply(Reflector.scala:44) 
at org.json4s.reflect.Reflector$$anonfun$describe$1.apply(Reflector.scala:44) 
at org.json4s.reflect.package$Memo.apply(package.scala:39) 
at org.json4s.reflect.Reflector$.describe(Reflector.scala:44) 
at org.json4s.Extraction$.extract(Extraction.scala:330) 

```

好像在底層的jar文件中的錯誤被解決。但我只是想知道這是否是正確的方法,我是否可以簡單地將json4s的jar版本弄糟? 的協議,JVM提供商彈簧-MVC不是在感動的同時,與0.5.0版本從未公佈。再次請注意,我不需要spring-mvc。我只是想測試契約對我的休息api。 我認爲可能有另一種方式來做到這一點。

回答

0

確保請求主體相匹配的API所期待的。

我已經得到了類似的錯誤,(但是從傑克遜)時是這種情況。