为什么这个PHPUnit比较错了? (.. $ mock-> with($ this->相同的($ foo))

时间:2012-09-17 13:56:04

标签: php unit-testing testing phpunit

我的PhpUnit有问题。我想使用PHPUnit的isIdentical方法来确保使用特定对象作为参数调用方法。 给定是一个带有方法“setBar”的模拟对象:

    $bar = new Bar();
    $someMock
        ->expects($this->any())
        ->method('setBar')
        ->with($this->identicalTo($bar));

    $someMock->setBar($bar);

这当然只是一个例子。它应该工作,但事实并非如此。为了获得一些提示,我在PHPUnit_Framework_Constraint_IsIdentical方法中编写了一些echo代码:

public function evaluate($other, $description = '', $returnResult = FALSE)
{
    //...
    echo "\n";
    echo spl_object_hash($other) . "/". spl_object_hash($this->value). " - ". get_class($this->value) ."/". get_class($other);
    echo " ->> ";  
    var_dump($other === $this->value);
}

$other的对象哈希值$this->value不一样$this->value的哈希值实际上是正确的哈希值)

与此同时,我在这里找到了此错误的原因。这是PHPUnit的一个问题。 PHPUnit克隆的对象。我提出问题如果有人知道这个问题的解决方法。

https://github.com/sebastianbergmann/phpunit-mock-objects/issues/41

0 个答案:

没有答案