2

我的一个类Foo有一个方法 ,Foo::bar()它依赖于注入的集合 ,BazCollection以及从该集合的项目中提取的值。Foo::bar()我需要BazCollectionFoo::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正常工作?

4

0 回答 0