PHPUnit Мок, который вызывается несколько раз в одном методе с разными параметрами

seine

Новичок
PHPUnit Мок, который вызывается несколько раз в одном методе с разными параметрами

Привет, всем. Есть метод, котрый использует мок (другой объект) и несколько раз вызывает один и тот же метод мока, но с разными параметрами, мок тоже должен возвращать разные значения.
Вот как это выглядит:

PHP:
// Метод, который надо протестировать. 
// Все лишнее отброшенно, оставлена только суть
public function methodForTest() {
    $name1 = $this->users->getName($id1);
    $name2 = $this->users->getName($id2);
    $name3 = $this->users->getName($id3);
    // Что-то делаю с полученными значениями
}
И метод, который его тестирует:

PHP:
public function testMethodForTest() {
        $this->users->expects($this->any())
                    ->method('getName')
                    ->will($this->onConsecutiveCalls(
                            $this->returnValue('name1'),
                            $this->returnValue('name2'),
                            $this->returnValue('name3')));

        $this->walker->methodForTest();
}
В testMethodForTest я указал значения, которые надо возвращать и в каком порядке (с помощью onConsecutiveCalls).
Но этого мало, еще хотелось бы убедиться, что метод getName вызывается с определенными параметрами. С помощью with() можно задать только значения параметров для одного вызова...
Забыл сказать, это все относится к PHPUnit.

-~{}~ 04.07.10 15:30:

Хм, поторопился тему создавать) Прочитал про at() и понял, что нужно писать несколько раз expects(), типа такого:

PHP:
$this->walker->expects($this->at(0))
                    ->method('getName')
                    ->with($this->equalTo('first'))
                    ->will($this->returnValue('name1'));


$this->walker->expects($this->at(1))
                    ->method('getName')
                    ->with($this->equalTo('second'))
                    ->will($this->returnValue('name2'));
Тема закрыта.
 
Сверху