Я пытаюсь создать фиктивный объект в PHP и PHPUnit. Пока у меня есть это:
$object = $this->getMock('object',
array('set_properties',
'get_events'),
array(),
'object_test',
null);
$object
->expects($this->once())
->method('get_events')
->will($this->returnValue(array()));
$mo = new multiple_object($object);
Не обращая внимания на мои ужасно неоднозначные имена объектов на минуту, я понимаю, что то, что я сделал, это
- Создал фиктивный объект с двумя методами настройки,
- Сконфигурировал метод get_events для возврата пустого массива, и
- Перетащил макет в конструктор.
Что я хотел бы сделать сейчас, так это настроить второй метод, но я не могу найти ничего, что объясняло бы, как это сделать. Я хочу сделать что-то вроде
$object
->expects($this->once())
->method('get_events')
->will($this->returnValue(array()))
->expects($this->once())
->method('set_properties')
->with($this->equalTo(array()))
или что-то в этом роде, но это не работает. Как мне это сделать?
По касательной, означает ли это, что я плохо структурировал свой код, если мне нужно настроить более одного метода для тестирования?