Расширяя ответ, предоставленный zerkms, ниже показано, как я подошел к этой конкретной задаче:
PHPUnit_Framework_Assert::assertTrue($this->assertArrayContainsSameObject($yourArray, $theObjectToCheck));
Чтобы проверить, что массив содержит объект с такими же атрибутами и значениями (то есть необязательно ссылается на один и тот же экземпляр):
private function assertArrayContainsSameObject($theArray, $theObject)
{
foreach($theArray as $arrayItem) {
if($arrayItem == $theObject) {
return true;
}
}
return false;
}
Чтобы проверить ту же ссылку, просто измените ==
на ===
.
Чтобы решить вопрос оригинального автора:
PHPUnit_Framework_Assert::assertTrue($this->assertArrayContainsSameObjectWithValue($yourArray, 'name', 'bar'));
private function assertArrayContainsSameObjectWithValue($theArray, $attribute, $value)
{
foreach($theArray as $arrayItem) {
if($arrayItem->$attribute == $value) {
return true;
}
}
return false;
}