我的一个类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
正常工作?