首页 > 解决方案 > 如何在 PHP 中进行某些操作后检查对象是否发生了变异?

问题描述

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

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

标签: phpmutation

解决方案


严格比较对象:

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()。


推荐阅读