我有一个 Spring Boot 应用程序,我正在使用 Pact-JVM 编写合同测试。它是一个提供者。
我在 build.gradle 中添加了以下协议依赖项/配置:我正在使用 Java 11、Gradle 6.3
plugins {
id 'au.com.dius.pact' version '4.1.6'
}
dependencies {
testImplementation 'ch.qos.logback:logback-core:1.2.3'
testImplementation 'ch.qos.logback:logback-classic:1.2.3'
testImplementation 'au.com.dius.pact.provider:junit5:4.1.6'
}
这是我的验证测试:
@Provider("product")
@PactBroker(host = "localhost", scheme = "http", port = "9292")
class PactVerificationTest {
@BeforeEach
void setupTestTarget(PactVerificationContext context) {
context.setTarget(new HttpTestTarget("localhost", 9002, "/"));
}
@TargetRequestFilter
public void addAuthorizationHeadersStripContextPathRequestFilter(HttpRequest request) throws URISyntaxException {
request.addHeader("USER_ID", "1231324123414");
request.addHeader("AB_USER", "1231324123414");
request.addHeader("AB_USERGROUP", "installtrial");
String rawUri = request.getRequestLine().getUri();
((HttpRequestBase) request).setURI(new URI(rawUri.replaceFirst("/product/", "/")));
}
@TestTemplate
@ExtendWith(PactVerificationInvocationContextProvider.class)
void pactVerificationTestTemplate(PactVerificationContext context) {
context.verifyInteraction();
}
@State("Given products available")
public void testProductDetails() {
}
}
我期望在 TargetRequestFilter 注释方法中添加的授权标头成为请求的一部分,但请求中缺少这些标头。你能帮我看看我在这里做错了什么吗?
另外,我正在寻找使用最新版本的 pact-jvm 的示例。我在 pact-jvm 提供的示例中找不到。