只是想了解协议。我们使用的是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。 我认为可能有另一种方式来做到这一点。