接受任何数量的协议 somethingLike
Accept any number in pacts somethingLike
在我的客户契约中,我有类似
的规则
{
foo: like(1.2)
}
我想要的是 foo 是浮点数或整数。然而,在提供者方面,契约测试对整数失败。
我的提供商端 (PHP) 看起来像这样:
myApi() {
return [
foo => (float) 1 // Returns 1 in PHP, not 1.0
];
}
提供商是否真的需要 return 1.0
而不是 1
或者是否可以用不同的方式编写合同?
不,不需要,因为如果你 var_dump(foo) 相同;然后你会发现它是float类型的。如果该值包含更高的精度或小数点后的值,则它将 return 该浮点值,但对于 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 (and other related such as https://github.com/pact-foundation/pact-js/issues/94)。根据反馈和讨论,它现在实际上应该得到框架的支持。
Pact PHP 需要升级到这个底层库的最新版本(它是引擎盖下使用的引擎)并且它 应该可以正常工作
在我的客户契约中,我有类似
的规则{
foo: like(1.2)
}
我想要的是 foo 是浮点数或整数。然而,在提供者方面,契约测试对整数失败。
我的提供商端 (PHP) 看起来像这样:
myApi() {
return [
foo => (float) 1 // Returns 1 in PHP, not 1.0
];
}
提供商是否真的需要 return 1.0
而不是 1
或者是否可以用不同的方式编写合同?
不,不需要,因为如果你 var_dump(foo) 相同;然后你会发现它是float类型的。如果该值包含更高的精度或小数点后的值,则它将 return 该浮点值,但对于 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 (and other related such as https://github.com/pact-foundation/pact-js/issues/94)。根据反馈和讨论,它现在实际上应该得到框架的支持。
Pact PHP 需要升级到这个底层库的最新版本(它是引擎盖下使用的引擎)并且它 应该可以正常工作