三秒游

这个非常简短的导览是用Spring Cloud Contract来进行的。它包括 以下话题:spring-doc.cadn.net.cn

你可以在这里找到一个更长的导览spring-doc.cadn.net.cn

下图展示了 Spring Cloud Contract 中各部分的关系:spring-doc.cadn.net.cn

入门三秒

在制作人方面

要开始使用 Spring Cloud Contract,可以添加带有 REST 或消息合约的文件 通过Groovy DSL或YAML表达到契约目录,该目录由contractsDslDir财产。默认情况下,它是$rootDir/src/测试/资源/合同.spring-doc.cadn.net.cn

然后你可以把 Spring Cloud Contract Verifier 的依赖和插件添加到你的构建文件中,就像 以下示例展示了:spring-doc.cadn.net.cn

下面的列表展示了如何添加插件,应该放在构建/插件中 文件部分:spring-doc.cadn.net.cn

<plugin>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-contract-maven-plugin</artifactId>
	<version>${spring-cloud-contract.version}</version>
	<extensions>true</extensions>
</plugin>

运行./mvnw 干净安装自动生成验证应用的测试 遵守新增合同。默认情况下,测试会在org.springframework.cloud.contract.verifier.tests..spring-doc.cadn.net.cn

由于合同中描述的功能尚未实现 在场时,测试失败。spring-doc.cadn.net.cn

要让它们通过,你必须添加正确的HTTP处理实现 请求或信息。另外,你必须添加一个基础测试类以实现自动生成 项目测试。该类由所有自动生成的测试扩展,且 应包含运行这些程序所需的所有设置信息(例如)安心莫克Mvc控制器设置或消息测试设置)。spring-doc.cadn.net.cn

以下示例来自pom.xml,展示了如何指定基测试类:spring-doc.cadn.net.cn

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-contract-maven-plugin</artifactId>
                <version>2.1.2.RELEASE</version>
                <extensions>true</extensions>
                <configuration>
                    <baseClassForTests>com.example.contractTest.BaseTestClass</baseClassForTests> (1)
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
1 baseClassForTestselement 可以让你指定基础测试类。一定是个孩子 一配置元素Spring-cloud-contract-maven-plugin.

一旦实现和测试基类就位,测试通过,且 应用程序和存根工件会在本地的 Maven 仓库中构建并安装。 你现在可以合并这些更改,并且可以发布应用程序和存根伪影 在一个在线仓库中。spring-doc.cadn.net.cn

在消费者方面

你可以使用春云合同存根跑者在积分测试中,以实现运行 WireMock实例或消息路由,模拟实际服务。spring-doc.cadn.net.cn

为此,将依赖添加于春云合同存根跑者,作为 以下示例展示了:spring-doc.cadn.net.cn

你可以在Maven仓库里安装生产者端的存根,有两种方式 方式:spring-doc.cadn.net.cn

  • 通过查看生产者端仓库,添加合同并生成存根 通过执行以下命令:spring-doc.cadn.net.cn

    $ cd local-http-server-repo
    $ ./mvnw clean install -DskipTests
测试被跳过,是因为生产方合同的实施没有 还没到位,所以自动生成的合同测试失败了。

现在你可以用@AutoConfigureStubRunner.在注释中, 提供群体识别文物ID春云合同存根跑者自 帮你运行合作者的作品,如下示例所示:spring-doc.cadn.net.cn

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment=WebEnvironment.NONE)
@AutoConfigureStubRunner(ids = {"com.example:http-server-dsl:+:stubs:6565"},
		stubsMode = StubRunnerProperties.StubsMode.LOCAL)
public class LoanApplicationServiceTests {
	. . .
}
使用该远程 小作品模式当从在线仓库下载存根时,当地用于离线工作。

现在,在你的集成测试中,你可以收到 HTTP 响应的跳板版本,或者 这些消息是协作者服务预期会发出的。spring-doc.cadn.net.cn