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

Provider中的PACT使用者驱动的设置测试数据

燕英奕
2023-03-14

我正在执行一些测试,如果使用者设置了某个ID或任何文本,而这些ID或文本在提供者数据库中并不存在,那么我希望在提供者测试中执行以下步骤

  • 接收带有以下信息的协议文件:首先需要设置哪些内容
  • 然后我将有我的函数,它将开始将那些不可用的数据插入数据库
  • 然后调用API以提供实际响应。

现在我想知道,消费者应该使用哪个字段来让提供者知道,在实际的API调用之前需要一些先决条件或预设置。

共有1个答案

钮善
2023-03-14
[TestMethod]
        public void Ensure_OfferApi_HonoursPact_WithDeal_ForSendingLatestSoftOffer()
        {
            //Arrange
            var outputter = new CustomOutputter();
            var config = new PactVerifierConfig();
            config.ReportOutputters.Add(outputter);
            IPactVerifier pactVerifier = new PactVerifier(() => { InsertEventIntoDatabase(); }, () => { }, config);

            pactVerifier
                .ProviderState(
                    "Given the Offer Exist in Offer System I WANT TO See Latest SoftOffer",
                    setUp: InsertEventsIntoDatabase);  // in case you want to insert something

            //Act / Assert
            using (var client = new HttpClient { BaseAddress = new Uri("http://localhost:9999") })
            {
                pactVerifier
                   .ServiceProvider("Offer API", client)
                   .HonoursPactWith("Consumer")
                   .PactUri(@"C:\TOSS\TestSample\log\deal-offer.json")
                   .Verify();
            }

            // Verify that verifaction log is also sent to additional reporters defined in the config
            Assert.IsNotNull(outputter.Output);
        }

Lets say the setup function is InsertEventsIntoDatabase and I want to add events what ever consumer is providing via PACT file. so that I dont need to update this code when ever Consumer changes the input.
 类似资料:
  • 我正在使用Pactman和pact-python为CDC测试做一个POC。我可以生成协议文件和验证协议与提供商的基本url而不注册到协议代理,我使用以下方法。它将检查任何失败,这是最好的做法还是我需要使用代理?

  • 我是一个新的编写PACT测试用例的人。我有一个非常简单的场景,一个微服务运行在dev服务器上,它根据路径变量返回true或false(这是一个GET调用)。如何编写生成协议测试用例?如何建立一个代理服务器来发布协议?现在我只关心消费者端。 首先,我编写了以下代码? OrdermsConsumerTest 这里我有点困惑@PactTestFor(providerName=“orderms-provi

  • 在我的公司,我使用SeleniumWebDriver进行自动化测试来自动化Web应用程序,但我直接使用id、xpath和所有工具,而不遵循任何框架,因此现在我遇到了一些问题,必须设计数据驱动的框架。 请建议我如何在eclipse下设置DatadrivenFramwework。要遵循哪些步骤和所有步骤。 谢谢

  • 我正在开发一个带有一些公共API的静态C++库。我必须为库提供的API实现使用者驱动的契约。但在我的情况下,我必须向消费者提供他们同意的合同。 有没有任何方法可以在文件中定义合同,并且可以测试所有的API。这样做的主要目的是隔离测试。 请您分享一些输入来实现文件中定义的合同,并为这些合同编写一个测试程序。

  • 大家好, 我正在尝试实现PACT JS。目前我指的是这个实施: 有人能帮帮我吗?威尔逊·马汉

  • 问题内容: 您如何在jUnit中编写数据驱动的测试? (我的定义)数据驱动测试是一种从某些外部源(文件,数据库等)读取数据,每行/文件/任何内容执行一个测试,并将结果显示在测试运行程序中的测试,就像您进行了单独的测试- 每次运行的结果将单独显示,而不是汇总显示。 问题答案: 在JUnit4中,您可以使用Parameterized testrunner进行数据驱动的测试。 它的文档记录不是很好,但是