VisualPHPUnitテスト。VisualPHPUnit - オブジェクトのプロパティを取得するときに非オブジェクトのプロパティを取得しようとしています
いいえ、配列ではありません。また
class TestGetChildren extends PHPUnit_Framework_TestCase
{
protected $objs;
protected function setUp()
{
$objs = array();
$i=0;
while ($i<20) {
$obj = (object) array (
'ID'=>$i,
'DIRID'=>0
);
if ($i>5) $obj->DIRID = $i-6;
if ($i>10) $obj->DIRID = 7;
$objs[] = $obj;
$i++;
}
$this->objs = $objs;
}
public function testGetChildren() {
$objs = $this->objs;
//var_dump($objs);
print_r(gettype($objs));
assert('array' == gettype($objs));
print_r($objs[19]->ID);
$vm = new FoldersPermissions($objs);
//$children = $vm->getChildren($vm->folders[0]);
foreach ($vm->folders as $obj) {
$children = $vm->getChildren($obj);
print_r($obj->ID."|".count($children)."\n");
// 0 is a special case, and 1 has 10 children
if (4 >= $obj->ID && 1 < $obj->ID) {
//print_r(($children));
$this->assertTrue(1 == count($children));
}
if (7 == $obj->ID){
$this->assertTrue(count($children) == 9);
}
}
}
}
、出力:
Debugging Output
19
だから、それが実際に動作します。 何ですか?明確にする
はまた、明らかに$ OBJSが配列ではありません...
編集:
public function testGetChildren() {
$objs = $this->objs;
//var_dump($objs);
print_r(gettype($objs));
assert('array' == gettype($objs));
と応答としてこれを得た:
私はそうのようなtestGetChildrenを変更NULL警告:assert():アサーションが失敗しました
投稿したコードから$ objs *は配列です。 $ objs [19]はその配列の要素であり、これはstdClassのオブジェクトのようです。 – liquorvicar
あなたはそうは思わないでしょう。どうやらそれはNULLです。興味深いことに、テストは正常に完了します。 – Esa