2017-06-21 52 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所期待的。

我已经得到了类似的错误,(但是从杰克逊)时是这种情况。