私はカスタムコレクションオブジェクトを持っているとしましょう。 removeメソッドの単体テスト(依存関係なし)を作成するにはどうすればよいですか?後でそのアイテムを削除できるようにaddメソッドを呼び出さなければならないため、removeメソッドはaddメソッドに依存します。ほとんどの場合、このカスタムコレクションクラスは、追加されたすべてのコレクションアイテムを含む保護されたプロパティを持ちます。したがって、削除するコレクションアイテムがないため、addメソッドを疑似できません。 addメソッドはおそらく、複数のオブジェクトのプロパティを変更した場合、私は、オブジェクトの集合を使用して、コンストラクタにコレクションアイテムの配列を渡すと、このカスタム・コレクション・オブジェクトの最初のコレクションアイテムとしてこれを使用するが、これが問題になる可能性がある可能性があり単体テストの代わりに積分テスト
class Item
{
private $identifier;
public function __construct($identifier)
{
$this->identifier = $identifier;
}
public function getIdentifier() { return $this->identifier; }
...
}
class customCollection
{
protected $items = [];
public function add($item) {
$this->items[$item->getIdentifier()] = $item;
}
public function remove($item) {
unset($this->items[$item->getIdentifier()]);
}
public function getItems()
{
return $this->items;
}
}
。ですから、このタスクをどうやって解決するのでしょうか、それとも単なる統合テストですか?フィードバックありがとう!
単位テストでは、従属代用のモックを集中的に使用することを前提としています。私は、この特定のケースがこの命題に従わないために特別であるとは思わない。行数とテストは安全です(そして、あなたの生産コードも)。 – xmike