gpt4 book ai didi

c# - PACT .NET 消费者测试 : flexible length array

转载 作者:行者123 更新时间:2023-11-30 15:17:07 27 4
gpt4 key购买 nike

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

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

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

或者这个:

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

我如何为这个交互创建契约?

documentation是 Ruby 中的示例,但我找不到 C# 中的等效项。

我使用的是 pactNet 版本 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)

关于c# - PACT .NET 消费者测试 : flexible length array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47346369/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com