Pact 合约测试 - 当缺少所需的枚举成员时让测试失败

问题描述 投票:0回答:1

我们有一个案例,消费者对其消费的当前枚举成员非常严格。因此,消费者期望只收到枚举成员,并且对于拥有新的枚举成员感到非常失落。

enum ProductTypes {
   Car, //required by consumer
   Plane, //required by consumer
   Train //new enum member
} // passes the contract test
enum ProductTypes {
   //car was removed by the provider
   Plane
} // should fail the contract test

在合约测试中,当场景缺少所需的枚举成员时,我们希望让提供者失败,但在添加新的枚举成员时应该失败。

目前我没有看到任何 Matcher 能够做到这一点。

可以用“插件”解决这个问题吗? 有其他方法可以在合同测试中涵盖这一点吗?

我查看了正则表达式,但这不符合标准。

c# xunit.net pact
1个回答
0
投票

在合约测试中,当场景缺少所需的枚举成员时,我们希望让提供者失败,但在添加新的枚举成员时应该失败。

这就是合同测试的设计原理。只有当消费者对提供商执行过于严格的合同时,它才会失败(请参阅有关良好消费者主张主题的指南)。

enum ProductTypes {
   //car was removed by the provider
   Plane
} // should fail the contract test

为了强制执行此失败,您需要对每个场景进行单独的测试(即每个所需的枚举一个) - 显然您想确保这是一个有用的测试。如果提供商删除了枚举并且这不会破坏消费者,那么您不应该在合同中强制执行这一点。理想情况下,您希望能够添加/删除不会破坏消费者的枚举。

© www.soinside.com 2019 - 2024. All rights reserved.