此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-contract 4.1.5! |
使用上下文路径
Spring Cloud Contract 支持上下文路径。
完全支持上下文路径所需的唯一更改是
producer 端。此外,自动生成的测试必须使用显式模式。消费者
侧面保持不变。为了使生成的测试通过,您必须使用 explicit
模式。以下示例显示如何将测试模式设置为 : Maven 系列
Gradle
|
这样,您可以生成一个不使用 MockMvc 的测试。这意味着您生成 real 请求,并且您需要设置生成的测试的基类才能在真实的 插座。
考虑以下合约:
org.springframework.cloud.contract.spec.Contract.make {
request {
method 'GET'
url '/my-context-path/url'
}
response {
status OK()
}
}
以下示例演示如何设置基类和 RestAssured:
import io.restassured.RestAssured;
import org.junit.Before;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.server.LocalServerPort;
@SpringBootTest(classes = ContextPathTestingBaseClass.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class ContextPathTestingBaseClass {
@LocalServerPort int port;
@Before
public void setup() {
RestAssured.baseURI = "http://localhost";
RestAssured.port = this.port;
}
}
如果你这样做:
-
自动生成的测试中的所有请求都会发送到真实终端节点,其中包含您的 包含上下文路径(例如,)。
/my-context-path/url
-
您的合同反映您有一个上下文路径。您生成的存根还具有 该信息(例如,在存根中,您必须调用 )。
/my-context-path/url