谁能给我解释一下为什么下面的测试没有通过?
待测代码
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。