phpspec测试SplObjectStorage中是否存在预言对象的问题



谁能给我解释一下为什么下面的测试没有通过?

待测代码

public function doesItExist( $obj, $dataSet ){
    if( $dataSet->contains( $obj ) ){
        return true;
    } 
    return false;
}

phpspec测试

function it_should_check_if_it_exists( stdClass $s ){
    $dataSet = new SplObjectStorage();
    $dataSet->attach($s);
    $this->doesItExist( $s, $dataSet )->shouldReturn(true);
}

如果您在测试中检查it_should_check_if_it_exists()中的$s类,则它是PhpSpecWrapperCollaborator,但主题中的$obj在doesItExist()中是DoublestdClassP1。显然,PHPSpec是使一个double的StdClass当它被传递给匹配器,所以它不是一个相同的对象,你已经添加到SplObjectStorage。

相关内容

  • 没有找到相关文章

最新更新