当前位置: 首页 > 知识库问答 >
问题:

如何在合同发布给在线经纪人之前验证PACT测试?

公良育
2023-03-14

我有一个情况,我可以访问一个作为.json文件的合同,但它还没有发布,这可能需要一段时间。我想开始为它编写验证测试,所以是否考虑手动粘贴这个文件到pact/文件夹下,并连接到它,而不是一个在线代理?我想我以前在什么地方见过这样的事。这真的可能吗?如果可以,请给我一个样品好吗?谢谢.

共有1个答案

和斌
2023-03-14

回答我自己的问题。可以通过生成或手动粘贴使用者在target/pacts文件夹下创建的.json文件,并添加@pactfolder(“target/pacts”)注释作为代理路径的替换。

import au.com.dius.pact.provider.junit.loader.PactFolder;
import au.com.dius.pact.provider.junit.Provider;
import au.com.dius.pact.provider.junit.State;
import au.com.dius.pact.provider.junit5.HttpsTestTarget;
import au.com.dius.pact.provider.junit5.PactVerificationContext;
import au.com.dius.pact.provider.junit5.PactVerificationInvocationContextProvider;
import org.apache.http.HttpRequest;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.TestTemplate;
import org.junit.jupiter.api.extension.ExtendWith;


import static com.hmhco.cp.config.Constants.*;

@Provider("UPDATE")
@PactFolder("target/pacts")
public class PactProviderTest {

@TestTemplate
@ExtendWith(PactVerificationInvocationContextProvider.class)
void pactTestTemplate(PactVerificationContext context, HttpRequest request) {
    request.addHeader("Authorization", AUTHORIZATION_TOKEN);
    context.verifyInteraction();
}

@BeforeEach
void before(PactVerificationContext context) {
    context.setTarget(new HttpsTestTarget(BASE_URL, 443, "/update/v1/lastUpdateSummary"));
}

@State("v1/lastUpdateSummary")
public void sampleState() {
    getAuthorizationToken("teacher");
}

}

PS:确保这是使用的导入:

import au.com.dius.pact.provider.junit.loader.PactFolder;
 类似资料:
  • 我正在使用Pact JS进行合同测试。我已经编写了提供者和消费者部分,并将它们上传到协议经纪人。合同URL指向我的QA环境。我想创建一个每天运行的Slack webhook,并验证合同是否仍然通过。有没有办法让我按需运行契约验证,而不上传新合同?如果我只是想检查一下是否没有变化,为什么我需要更改合同?这似乎是一个每个人都应该使用的基本功能,但为了我的爱,我无法在文档中找到它

  • 我用Spring创建了一个REST服务。现在我想使用pact和JUnit5来测试消费者-提供者-通信。我已经有一个正在运行的pact-broker(来自https://github.com/jaimeniswonger/pact-broker-openshift)。消费者测试工作良好,并公布了协议。provider-test加载这些并尝试验证它们。但测试仅在验证成功时才上载结果。我尝试用suref

  • 我有3个Kafka经纪人在3个不同的VM,其中一个还运行一个Zookeeper。我现在创建一个有8个分区的主题。制作人在创建的“主题”上向这些经纪人组推送消息。 Kafka是如何在经纪人之间分配话题及其分区的? 当新的Kafka代理加入集群时,Kafka是否重新分发主题? 创建主题后是否可以增加主题分区?

  • 问题内容: 我有一个PHP脚本,应该检查“有效”人名,但是最近破解了一个带有空格的名称,因此我们在验证器中添加了空格。 除了这样做,还有没有办法向CakePHP的验证器添加黑名单以阻止所有“无效”字符,而不是允许“有效”字符? 注意:我知道如何在PHP中执行此操作(通常),但是使用CakePHP的验证器语法是不同的。 问题答案: 我同意其他意见,即验证名称可能不是一个好主意。 对于您可以想到的几乎

  • pact-jvm可以将结果发布回pact代理。但是,我似乎找不到使用标记发布的选项或方法,就像pact Broker的例子:

  • 我正在尝试在一个POST API(微服务)上应用契约测试。我已经编写了消费者端的测试用例,并且生成了协议,现在我正在尝试使用pact-python在提供者端验证协议。但我看不出有任何选项可以为API的POST调用输入输入体负载。到目前为止我有这个