You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pact消费者测试:如何匹配PayloadType为指定字符串集合中的值?

Pact消费者测试:匹配PayloadType为指定字符串集合中的任意值

你当前使用的Match.MinType是用于验证数组类型最少包含指定数量元素的匹配器,并不适用于单个字符串匹配指定可选值的场景。

针对你的需求,正确的做法是使用Match.OneOf方法(适用于PactNet库),它专门用来验证字段值是给定集合中的任意一个。修改后的代码如下:

this.pact
    .ExpectsToReceive("an event indicating that an order has been created")
    .WithJsonContent(new
        {
           PayloadType = Match.OneOf("apple", "orange"),
        })

补充说明

  • Match.OneOf会在契约中生成对应的匹配规则,确保Provider返回的PayloadType值只能是"apple"或"orange"中的一个。
  • 如果你的PactNet版本较旧不支持Match.OneOf,可以用正则匹配替代:
    PayloadType = Match.Regex("apple|orange", "apple")
    
    第二个参数"apple"是契约生成时使用的示例值,不影响匹配逻辑。

内容的提问来源于stack exchange,提问作者User3250

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 20:57:02