PHPUnit:如何检查数组是否具有具有特定属性的对象?

Aar*_*n K 4 phpunit

假设我们有以下数组$myArray要根据 var_export 检查:

array (
  0 => AnObject::__set_state(array(
           'id' => 10,
           'name' => 'foo'
  )),
  1 => AnObject::__set_state(array(
           'id' => 23,
           'name' => 'bar'
  )),
  2 => AnObject::__set_state(array(
           'id' => 55,
           'name' => 'baz'
  )),
)
Run Code Online (Sandbox Code Playgroud)

AnObject如果该数组包含名称为 的 ,则断言应该通过'bar'

我知道如果我知道该AnObject值的位置,我可以使用:

$this->assertAttributeSame('bar', 'name', $myArray[1]);
Run Code Online (Sandbox Code Playgroud)

是否有某种方法可以使用$this->assertThat()或另一种类型的 contains 来检查整个数组并返回 true ,其中一个对象具有匹配的属性?

zer*_*kms 5

没有这样的内置断言,我无法想到将它们结合起来以获得预期结果的任何可能性。

我建议您创建一个辅助方法,该方法接受数组并在循环中进行必要的检查。

其他解决方案是仅针对这种情况创建全新的断言,但我认为这对于此任务来说是一种矫枉过正;-)