我必须使用内部数组测试数组。
我的数组如下所示。
$testdata=Array
(
[0] => Array
(
[label] => 'Ammy'
[idr] => 'user7'
[rel] => 7
)
[1] => Array
(
[label] => 'sidh'
[idr] => user8
[rel] => 8
)
[2] => Array
(
[label] => 'Alan'
[idr] => 'user9'
[rel] => 9
)
)
在这种情况下,我的要求是使用phpunit的assertArrayHasKey()断言断言内部数组的键是否存在。我试着这样做
foreach ($testdata as $values) {
//print_r($values);
$this->assertArrayHasKey('idr', $values);
$this->assertArrayHasKey('rel', $values);
}
但这不适合我。甚至控件也不会进入foreach()循环。
请为此建议一些解决方案。
答案 0 :(得分:2)
foreach ($testdata as $values) {
//print_r($values);
$this->assertArrayHasKey('idr', $values);
$this->assertArrayHasKey('rel', $values);
}
这部分在我的问题中工作得很好。实际上我并没有在测试场景中获得阵列本身。所以它不会进入foreach()。现在它解决了。我把args传递给函数时出错了。
答案 1 :(得分:0)
您也可以使用
assertArraySubset()
另一个解决方案是比较数组,然后检查是否为true:
$arrays_are_equal = ($array1 == $array2); // or === if you want identical
$this->assertTrue($arrays_are_equal);
答案 2 :(得分:-1)
我相信那个控制不会进入foreach循环。
删除whole
:
$testdata= Array
(
[0] => Array
(
[label] => 'Ammy'
[idr] => 'user7'
[rel] => 7
)
[1] => Array
(
[label] => 'sidh'
[idr] => user8
[rel] => 8
)
[2] => Array
(
[label] => 'Alan'
[idr] => 'user9'
[rel] => 9
)
)