Php 接受合同中的任何数字

Php 接受合同中的任何数字,php,pact,Php,Pact,在我的客户契约中我有这样的规定 { foo: like(1.2) } 我想要求的是foo是一个浮点或整数。但是,在提供程序端,pact对整数的测试失败 我的提供者端PHP如下所示: myApi() { return [ foo => (float) 1 // Returns 1 in PHP, not 1.0 ]; } 提供商是否真的需要返回1.0而不是1,或者是否有可能以不同的方式编写合同?否不需要,因为如果您使用相同的格式;然后你会发现它是float类

在我的客户契约中我有这样的规定

{
   foo: like(1.2)
}
我想要求的是foo是一个浮点或整数。但是,在提供程序端,pact对整数的测试失败

我的提供者端PHP如下所示:

myApi() {
   return [
      foo => (float) 1 // Returns 1 in PHP, not 1.0
   ];
}

提供商是否真的需要返回1.0而不是1,或者是否有可能以不同的方式编写合同?

否不需要,因为如果您使用相同的格式;然后你会发现它是float类型的。如果该值包含更多精度或小数后的值,则它将返回该浮点值,但对于1.0、2.0、3.0、4.0、11.0、123.0。。。。i、 e.如果小数点后没有除0以外的数字,则它将始终以一个最大的数字输出,即1、2、11、123

参见和其他相关数字,如。实际上,它现在应该得到基于反馈和讨论的框架的支持


Pact PHP需要升级到这个底层库的最新版本,它是一个引擎,应该可以正常工作

,但是Pact测试失败,因为它比较了API的输出json并区分了固定数和浮点数。因此,测试失败。