私は問題をチェックする必要があるので、モックオブジェクトのすべての呼び出しをリストする必要があります。 SimpleTestのドキュメントでこの機能について何も見つかりませんでした。 SPHP - SimpleTest - モックオブジェクトのメソッドへのすべての呼び出しを一覧表示します
はたぶん私のコードをテストするための別の方法があります:
class Clean_Collection_Tree_NestedArrayParser {
protected $path = array();
protected $depth = -1;
/** @var Clean_Collection_Tree_MapTreeInterface */
protected $tree;
public function setBasePath(array $path) {
$this->path = $path;
}
public function setTree(Clean_Collection_Tree_MapTreeInterface $tree) {
$this->tree = $tree;
}
public function parse($subject) {
$this->parseArray($subject);
}
public function parseArray(array $array) {
++$this->depth;
foreach ($array as $key => $value) {
$this->path[$this->depth] = $key;
if (is_array($value)) {
$this->tree->put($this->path, new Clean_Collection_Map_Map());
$this->parseArray($value);
} else
$this->tree->put($this->path, $value);
}
if (!empty($array))
array_pop($this->path);
--$this->depth;
}
}
これは私がMapオブジェクトツリーを作成しようとしているから、ネストされた配列を待ってパーサーです。私はsetTree(Clean_Collection_Tree_MapTreeInterface $ツリー)実際のツリーを注入し、マップ・ツリー・インタフェースは、次のとおり
interface Clean_Collection_Tree_MapTreeInterface extends Clean_Collection_CollectionInterface {
public function putAll(array $array);
public function put(array $path, $value);
public function get(array $path);
public function getAll(array $pathes);
public function removeAll(array $pathes);
public function remove(array $path);
public function contains(array $path);
}
パーサーのみPUT(配列$パス、$値)方法を使用します。だから、すべてのputメソッドをリストすると、パーサで何がうまくいかなかったのかが分かります。 (。。SimpleMockは、私たちがインタフェースを実装し、私自身のモックオブジェクトを作成することができ、この機能を持っていない場合、私はそれによ)