Если я правильно понимаю, задача состоит в том, чтобы проверить EvenIterator
, используя ArrayIterator
в качестве заглушки для FibonacciIterator
.
Например, загрузите ArrayIterator
массивом четных значений, передайте его EvenIterator
, и вы получите те же значения. Затем сделайте то же самое с массивом нечетных значений, и вы получите пустой набор результатов.
class EvenIteratorTest extends \PHPUnit_Framework_TestCase {
public function testDoesNotRemoveEvens() {
$data = array(2,4,6,8);
$arrayIterator = new \ArrayIterator($data);
$object = new EvenIterator($arrayIterator);
$expected = $data;
$actual = array();
foreach($object as $v) {
$actual[] = $v;
}
$this->assertEquals($expected,$actual);
}
public function testFiltersOutOdds() {
$data = array(1,3,5,7);
$arrayIterator = new \ArrayIterator($data);
$object = new EvenIterator($arrayIterator);
$actual = array();
foreach($object as $v) {
$actual[] = $v;
}
$this->assertEmpty($actual);
}
}
Как видите, много дублированного кода, поэтому необходимо провести рефакторинг.