运行时生成存根

作为消费者,您可能不想等待生产者完成其实现然后发布其存根。解决此问题的一个方法是在运行时生成存根。

作为生产者,当定义了契约时,您需要使生成的测试通过才能发布存根。在某些情况下,您希望解除对消费者的阻塞,以便他们可以在您的测试实际通过之前获取存根。在这种情况下,您应该将此类契约设置为进行中。您可以在进行中的契约部分阅读更多相关信息。这样,您的测试将不会生成,但存根会生成。

作为消费者,您可以切换一个开关以在运行时生成存根。Stub Runner 会忽略所有现有的存根映射,并为所有契约定义生成新的映射。另一个选项是传递 spring.cloud.contract.stubrunner.generate-stubs 系统属性。以下示例展示了这样的设置

注解
@AutoConfigureStubRunner(
stubsMode = StubRunnerProperties.StubsMode.REMOTE,
		repositoryRoot = "stubs://file://location/to/the/contracts",
		ids = "com.example:some-producer",
		generateStubs = true)
JUnit 4 规则
@Rule
	public StubRunnerRule rule = new StubRunnerRule()
			.downloadStub("com.example:some-producer")
			.repoRoot("stubs://file://location/to/the/contracts")
			.stubsMode(StubRunnerProperties.StubsMode.REMOTE)
			.withGenerateStubs(true);
JUnit 5 扩展
@RegisterExtension
	public StubRunnerExtension stubRunnerExtension = new StubRunnerExtension()
			.downloadStub("com.example:some-producer")
			.repoRoot("stubs://file://location/to/the/contracts")
			.stubsMode(StubRunnerProperties.StubsMode.REMOTE)
			.withGenerateStubs(true);
© . This site is unofficial and not affiliated with VMware.