php - 如何在 PHP 中进行某些操作后检查对象是否发生了变异?
问题描述
我正在为 PSR7 实现编写单元测试。我想检查MessageInterface
like的方法withProtocolVersion
是否不改变原始对象。
如何在 PHP 中进行某些操作后检查对象是否发生了变异?
解决方案
严格比较对象:
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()。