在我的客户契约中,我有类似的规则>
{ foo: like(1.2) }
我想要的是foo是一个浮点数或整数。在提供者方面,但是pact测试无法对整数进行测试。
我的提供方(PHP)看起来像这样:
myApi() { return [ foo => (float) 1 // Returns 1 in PHP, not 1.0 ]; }
提供者真的需要返回
1.0
而不是1
还是可以用其他方式写合同?
在我的客户协议中,我有类似{foo:like(1.2)}的规则,我想要求的是foo是浮点数或整数。但是,在提供者方面,对整数的协议测试失败。 ...
不需要它,因为如果您使用var_dump(foo)相同;那么您会发现它的类型为float。如果该值包含更高的精度或小数点后的值,则它将返回该浮点值,但对于1.0、2.0、3.0、4.0、11.0、123.0...。即,如果小数点后除0之外没有数字,则它将始终以最大的单个数字输出,即1,2,11,123
请参阅https://github.com/pact-foundation/pact-ruby/issues/191(以及其他相关内容,例如https://github.com/pact-foundation/pact-js/issues/94)。实际上,该框架现在应该由基于反馈和讨论的框架来支持。