发表于2019-09-04 作者 wind
我理解这是局限于spring-cloud 技术之间的契约,所以provider 和 consumer 都是 spring cloud 服务之间的应用。
契约可以是一种“请求和响应的格式”,groovy 文件是契约的载体,在provider端,spring cloud contract verify 插件提供了基于 groovy 文件生成测试类的功能,生成的测试类会基于此groovy的文件所在的目录,继承对应的Base类,Base类是provider端编写的,为测试执行提供一些数据准备工作等。
生成的测试代码测试 的是provider本地的实现,请求真实的地址传入定义的参数,验证返回是否符合预期。
Provider 端生成的 stub 包可以发布到 maven repository
客户端(其他的spring cloud 应用)运行测试的时候,使用runner依赖,自动根据yml中的配置,使用remote使用远程仓库地址的jar(或local使用本地下载到repo中的jar)根据 IdsToService的信息,将jar中的url映射到 spring cloud 某 service。