【问题标题】:How to check if an object is mutated after some operation in PHP?如何在 PHP 中进行某些操作后检查对象是否发生了变异?
【发布时间】:2018-10-12 16:12:21
【问题描述】:

我正在为 PSR7 实现编写单元测试。我想检查MessageInterface 的方法是否像withProtocolVersion,不要改变原始对象。

如何在 PHP 中检查对象是否在某些操作后发生了变异?

【问题讨论】:

    标签: php mutation


    【解决方案1】:

    严格比较对象:

    class Foo {
        public $foo = 'bar';
    }
    
    $foo = new Foo();
    
    var_dump($foo === $foo);
    
    $foo2 = clone $foo;
    $foo2->foo = 'not bar';
    
    var_dump($foo2 === $foo);
    var_dump($foo2 === $foo2);
    

    我不确定你是否使用 phpunit,如果是,请尝试 assertSame() 和 assertEquals()。

    【讨论】:

    • 我要检查的是$foo在执行它的某个功能后是否发生了变异,比如$foo->bar()
    猜你喜欢
    • 2014-03-04
    • 1970-01-01
    • 2011-11-13
    • 2017-09-26
    • 2019-07-26
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 2011-10-07
    相关资源
    最近更新 更多