PACT .NET 消费者测试:灵活长度数组

2024-01-09

我正在使用 pactNet 来测试一个 API,它应该返回一个灵活长度的数组。

如果我调用“myApi/items/”,它应该返回一个消费者不知道其确切大小的项目列表。 所以答案应该是这样的:

    [
        {
            "id": "1",
            "description": "foo"
        },
        {
            "id": "2",
            "description": "foo2"
        },
        {
            "id": "3",
            "description": "foo3"
        }
    ]

or this:

    [
        {
            "id": "4",
            "description": "foo4"
        },
        {
            "id": "2",
            "description": "foo2"
        }
    ]

我如何创建此交互的合同?

In the 文档 https://docs.pact.io/documentation/matching.html是 Ruby 中的一个示例,但我找不到 C# 中的等效项。

我正在使用 pacnet 版本 2.1.1。

编辑:这是一个示例,它应该是什么样子。我想知道的是如何声明主体应包含具有灵活长度的项目数组。

[Test]
    public void GetAllItems()
    {
        //Arrange
        _mockProviderService
            .Given("There are items")
            .UponReceiving("A GET request to retrieve the items")
            .With(new ProviderServiceRequest
            {
                Method = HttpVerb.Get,
                Path = "/items/",
                Headers = new Dictionary<string, object>
                {
                    { "Accept", "application/json" }
                }
            })
            .WillRespondWith(new ProviderServiceResponse
            {
                Status = 200,
                Headers = new Dictionary<string, object>
                {
                    { "Content-Type", "application/json; charset=utf-8" }
                },
                Body = // array of items with some attributes
                       // (somthing like: {"id": "2", "description": "foo"}) 
                       // with flexible length
            });

        var consumer = new ItemApiClient(_mockProviderServiceBaseUri);

        //Act
        var result = consumer.GetItems();

        //Assert
        Assert.AreEqual(true, result.Count > 0);

        _mockProviderService.VerifyInteractions();

        data.Dispose();
    }

听起来您正在寻找 MinTypeMatcher。

身体部分如下所示:

Body = Match.MinType(new { id: "1", description: "foo" }, 1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PACT .NET 消费者测试:灵活长度数组 的相关文章

  • 分层架构中的异常处理

    我们正在分层设计中重构 当然还有重新设计 我们的服务 我们有服务操作层 BLL 网络抽象层 gt 处理网络代理 数据抽象层 但我们对我们的异常处理策略有点困惑 我们不想向外界透露太多 BLL 的信息 从其他层到bll就可以了 我们不想让 t
  • C++ 返回值、引用、const 引用

    你能向我解释一下返回值 值引用和值常量引用之间的区别吗 Value Vector2D operator const Vector2D vector this gt x vector x this gt y vector y return t
  • 使用 JSON 格式正确配置 NLog 到 IHostBuilder

    我有以下代码 应该接受 NLog 的 JSON appsettings 配置 然后使用它来创建 NLog LogFactory 这个 NLog 工厂应该被传递到 MyService 类中 以便在那里创建一个记录器 class Program
  • 在调用堆栈中看到大量 clr!CLR Semaphore::Wait

    我们看到很多像下面这样的调用堆栈 我可以知道什么条件 情况会发生这种情况吗 OS Thread Id 0x48654 559 Current frame ntdll NtWaitForSingleObject 0xa Child SP Re
  • 如何启动异步任务对象

    我想开始收集Task同时处理对象并等待所有对象完成 下面的代码显示了我想要的行为 public class Program class TaskTest private Task createPauseTask int ms works w
  • 有没有办法将 boost::json::serializer 切换为美化输出?

    Using boost json serializer如中的示例所示文档 快速查看 http vinniefalco github io doc json json usage quick look html以紧凑格式保存 json tre
  • 如何使用boost库读取和写入.ini文件[重复]

    这个问题在这里已经有答案了 如何使用boost库读取和写入 或修改 ini文件 With Boost PropertyTree您可以读取并更新树 然后写入文件 请参阅load and save功能 看一下如何访问属性树中的数据 http w
  • 读取STM32 MCU SPI数据寄存器的值

    有很多类似的问题 但似乎没有一个问题完全相同 我正在将 STML4 MCU 连接到 6 轴传感器 LSM6DS3 我已经成功地在 I2C 中实现了所有内容 但想要 SPI 的额外速度 和 DMA 如果我能让这些第一步工作起来的话 因此 第一
  • 命名空间“Microsoft”中不存在类型或命名空间名称“Practices”

    我正在使用 Microsoft Visual Studio 2005 for c 我的代码中有以下命名空间 using Microsoft Practices EnterpriseLibrary using Microsoft Practi
  • 函数参数评估顺序[重复]

    这个问题在这里已经有答案了 在 C 和 C 中 函数参数的求值是否有固定的顺序 我的意思是 标准怎么说 是吗left to right or right to left 我从书中得到的信息令人困惑 是否有必要function call应该使
  • 如何强制用户仅使用“new”创建从我派生的类的对象?

    为了实现引用计数 我们使用IUnknown http msdn microsoft com en us library ms680509 VS 85 aspx类接口和智能指针模板类 该接口具有所有引用计数方法的实现 包括Release vo
  • 如何填充两个样条线或直线系列之间的区域

    我有这个Chart 如何填充两个之间的区域Series S0 and S1 说蓝色和黄色Series 为此 我们编写了其中之一Paint事件 这里的ValueToPixelPosition https msdn microsoft com
  • 使用 INotifyPropertyChanged

    有人可以解释一下为什么在 wpf 中使用绑定时需要使用 INotifyPropertyChanged 的 实现吗 我可以在不实现此接口的情况下绑定属性吗 例如我有代码 public class StudentData INotifyProp
  • Visual Studio Code 调试默认 ASP.NET Core MVC WebApp:不起作用

    我正在使用 Manjaro linux 并尝试调试默认的 ASP NET Core MVC 项目 但调试停止 没有任何错误 我创建了该项目 dotnet new mvc in a Meow文件夹 没什么特别的 然后添加了新的配置 NET C
  • 使用 QGraphicsScene 实现流畅的动画

    我希望我的问题并不总是同样的问题 我有一个 QGraphicsScene 它的项目是一些 QGraphicsPixmap 我用一个计时器来移动它们 每秒 SetX 10 我设置 10是因为窗口大100 使用这个解决方案我的动画不流畅 我想我
  • 只读有运行时开销吗?

    出于某种原因 我一直认为readonly字段有与其相关的开销 我认为这是 CLR 跟踪是否存在readonly字段是否已初始化 这里的开销是一些额外的内存使用量 用于跟踪状态以及分配值时的检查 也许我这么认为是因为我不知道readonly字
  • 参数数量在编译时确定的 Lambda 函数

    我想声明一个带有 N 个参数的 lambda 函数 其中 N 是模板参数 就像是 template
  • 如何在 Winform DataGridView 中创建不同的单元格格式

    我有一个 DataGridView 我将其绑定到 DataTable DataTable 是一个全数字值 要求 DataGridView 中的每 n 行都包含文本 而不是数值 以便在视觉上为用户分隔部分 我很高兴在绑定后将此文本数据放入 D
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所
  • C# amo 获取角色完整

    我正在开发一个 SSAS 项目 其中除其他事项外 我需要获取 C 中表格多维数据集的完整用户列表 目前我让它以这样的方式工作 我可以获得角色 但数据不完整 当我调用 Server Database Roles 为了便于阅读而简化 属性并枚举

随机推荐

  • 修改 beforeFind 回调中所需的 Containable 字段?

    在我的 CakePHP 1 2 5 应用程序中 我有一个Profile模型属于User模型 用户模型有一个username字段 并且当执行find 在 Profile 模型上 我希望始终自动检索User username也 我认为修改我的配
  • Angular2 中组件属性变化的可观察

    当在 Angular 2 中创建一个通过 Input 具有输入属性的组件时 如何从对该属性 Input 所做的更改中获取可观察值 不要与用户表单输入混淆 export class ExampleComponent implement OnC
  • 隐式解包的选项真的是可选的吗?

    在 Swift 4 0 中 以下代码无法编译 var str String func someFunc s inout String someFunc str 现在我想象str属于类型String 事实上 Swift 编译器似乎也同意 无法
  • 在 C# 中解密使用 RSA 在 iPhone 上加密的内容时遇到问题

    到目前为止 我已经花了两天时间研究这个问题 并梳理了我可以使用的所有资源 所以这是最后的手段 我有一个 X509 证书 其公钥已存储在 iPhone 的钥匙串中 此时仅限模拟器 在 ASP NET 方面 我已在证书存储区中使用私钥获取了证书
  • 如何使用 aws-java-sdk 从 S3 中逐块读取文件

    我正在尝试从 S3 将大文件读取成块 而不切割任何行以进行并行处理 让我通过例子来解释一下 S3上有1G大小的文件 我想将此文件分成 64 MB 的块 我可以很容易地做到这一点 S3Object s3object s3 getObject
  • 带参数的静态资源构造函数

    我必须在 XAML 文件中创建静态资源
  • 找出用户在浏览器历史记录中的位置

    我知道我使用访问浏览器历史记录history对象 具体来说 我可以使用history back history forward and history go item number or history go url 我试图确定用户当前在浏
  • 如何将有符号整数转换为无符号整数?

    这段代码就像 int x 24 uint y uint x Console WriteLine y o p is 4294967272 为什么 C 中会出现这种类型的行为 详细阐述会很有帮助 谢谢你们 负数 例如 24 表示为二元补码 se
  • 使用实体管理器本机查询插入我的 JPA

    我正在尝试在我的数据库中插入数据 我在我的项目中使用 JPA 这就是我的豆子的样子 PersistenceContext EntityManager em em createNativeQuery INSERT INTO testtable
  • 如何在 quantmod 包中创建技术指标

    我是 R 的新手 在创建技术指标时遇到一些问题 更具体地说 我想创建一个指标 Fibonacci 这将被添加到chartSeries由 5 条水平线组成 我正在使用的数据是股票的收盘价 因此 我想要创建的图表将在最高收盘价点有一条水平线 在
  • 在 Delphi 控制台应用程序中使用 VCL TTimer

    正如题主所说 我在 Delphi 中有一个控制台应用程序 其中包含TTimer多变的 我想做的是将事件处理程序分配给TTimer OnTimer事件 我对 Delphi 完全陌生 我曾经使用 C 向事件添加事件处理程序是完全不同的 我发现
  • Google Guice 是否处于活动状态?

    一年多没有发布任何版本 甚至没有修复小错误 对存储库的提交很少 并且过去两个月没有提交 使用这个库开始新项目安全吗 Guice 4 现在处于测试阶段 请参阅https github com google guice https github
  • 使用 make 文件编译单独目录中的文件

    好吧 我一直无法掌握 make 和 makefile 我尝试通读手册页 但没有成功 所以我就来这里了 L 我有一堆文件开始在一个文件中变得非常不受管理 我正在尝试制作一个操作系统 并且我想尝试将这些文件拆分为单独的子目录 请参阅下面的结构
  • 使用 COUNT 个其他字段更新列是 SQL?

    我设置了以下表格 Articles ID TITLE CONTENT USER NUM COMMENTS COMMENTS ID ARTICLE ID TEXT 我需要一个 sql 语句 它使用针对文章的评论计数来更新文章表的 NUM Co
  • Doctrine MongoDB 结果缓存

    如何缓存 Doctrine MongoDB 结果 查看配置代码 它似乎没有像标准 Doctrine 那样内置结果缓存 只有查询缓存 我想过在应用程序中创建自己的缓存层 但返回的对象非常重 因为它们包含视图不需要的大量 Doctrine 逻辑
  • 如何编写 dockerfile 来执行简单的 bash 脚本?

    我正在尝试编写一个 docker 映像来通过 netcat 运行一个简单的网络服务器 所以我的 docker build 文件夹中有 Dockerfile index html run netcat webserver sh The run
  • SQLite 支架“不起作用”

    在 SQLite 版本 3 7 12 1 控制台 中 此查询不起作用 SELECT FROM A UNION SELECT FROM B EXCEPT SELECT FROM A INTERSECT SELECT FROM B 错误信息 错
  • 与实时 matplotlib 绘图交互

    我正在尝试创建一个实时绘图 该绘图会随着更多数据的可用而更新 import os sys import matplotlib pyplot as plt import time import random def live plot fig
  • TypeScript 不提供函数名称

    我有一些打字稿代码 我正在做一些元编程 我需要能够访问instance func name 但是 TypeScript 在编译的 JS 中省略了函数名称 打字稿 class ClassName func ReturnType 编译后的 Ja
  • PACT .NET 消费者测试:灵活长度数组

    我正在使用 pactNet 来测试一个 API 它应该返回一个灵活长度的数组 如果我调用 myApi items 它应该返回一个消费者不知道其确切大小的项目列表 所以答案应该是这样的 id 1 description foo id 2 de