我的一个类Foo有一个方法 ,Foo::bar()它依赖于注入的集合 ,BazCollection以及从该集合的项目中提取的值。Foo::bar()我需要BazCollection对Foo::bar().
因此,例如:
class Foo {
public function bar(BazCollection $bazzes) {
foreach ($bazzes as $baz) {
// Do something with $baz->boz(), and modify $result
}
return $result;
}
}
class BazCollection implements IteratorAggregate {
protected $_bazzes;
public function getIterator() {
return new ArrayIterator($this->_bazzes);
}
}
class Baz {
public function boz() { /* ... */ }
}
我将如何BazCollection正确模拟以隔离和测试Foo::bar()逻辑?
我认为创建一个实际的实例BazCollection是不行的,因为那时我的测试将取决于是否BazCollection正常工作?