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,可以用正则匹配替代:
第二个参数"apple"是契约生成时使用的示例值,不影响匹配逻辑。PayloadType = Match.Regex("apple|orange", "apple")
内容的提问来源于stack exchange,提问作者User3250
相关产品推荐
相关产品推荐

