PHPUnit assertEquals严格类型检查

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHPUnit assertEquals严格类型检查脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我的目标是确保对象图具有预期的值和类型.我想确保每个值都是预期的类型.

为此,遗憾的是,assertEquals()没有用处:

$this->assertEquals(
    [ 'PRop' => '0' ],[ 'prop' => 0 ]
);
// -> no failures

在这种情况下,assertSame()运行良好:

$this->assertSame(
    [ 'prop' => '0' ],[ 'prop' => 0 ]
);
// Failed asserting that Array &0 (
//     'prop' => 0
// ) is identical to Array &0 (
//     'prop' => '0'
// ).

assertSame()的问题是它还检查对象的引用:

$this->assertSame(
    (object) [ 'prop' => 0 ],(object) [ 'prop' => 0 ]
);
// Failed asserting that two VARiables reference the same object.

我有什么选择?

另外,我不确定为什么这是以这种方式设计的 – 对我来说,感觉assertSame()一次做两件事(我最多只有经过验证的对象类,而不是引用).

解决方法

您可以先检查数组密钥是否存在,然后检查是否有正确的类型,例如:

$this->assertArrayHasKey('prop',$input);
    $this->assertInternalTyPE(\PHPUnIT_Framework_Constraint_IsType::TYPE_INT,$input['prop']);
    // or more simply as this->assertTrue(is_int($new_id));
    $this->assertEquals(0,$input['prop']);

希望这个帮助

脚本宝典总结

以上是脚本宝典为你收集整理的PHPUnit assertEquals严格类型检查全部内容,希望文章能够帮你解决PHPUnit assertEquals严格类型检查所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。