PHPUnit - создание Фиктивных объектов для действия как тупики для свойств

Я пытаюсь настроить Фиктивный объект в PHPunit для возвращения значения для различных свойств (к которым получают доступ с помощью __, получают функцию),

Пример:

class OriginalObject {
 public function __get($name){
switch($name)
 case "ParameterA":
  return "ValueA";
 case "ParameterB":
  return "ValueB";
 }
}

Я пытаюсь дразнить это использование:

$mockObject = $this->getMock("OrigionalObject");

$mockObject    ->expects($this->once())
    ->method('__get')
    ->with($this->equalTo('ParameterA'))
    ->will($this->returnValue("ValueA"));

$mockObject    ->expects($this->once())
    ->method('__get')
    ->with($this->equalTo('ParameterB'))
    ->will($this->returnValue("ValueB"));

но это перестало работать ужасно :-(

17
задан j0k 7 February 2014 в 08:42
поделиться

1 ответ

Я еще не пробовал издеваться над __get, но, возможно, это сработает:

// getMock() is deprecated
// $mockObject = $this->getMock("OrigionalObject");
$mockObject = $this->createMock("OrigionalObject");

$mockObject->expects($this->at(0))
    ->method('__get')
    ->with($this->equalTo('ParameterA'))
    ->will($this->returnValue('ValueA'));

$mockObject->expects($this->at(1))
    ->method('__get')
    ->with($this->equalTo('ParameterB'))
    ->will($this->returnValue('ValueB'));

Я уже использовал $ this-> at () в тесте, и он работает (но не t оптимальное решение). Я понял это из этого протектора:

Как я могу заставить PHPUnit MockObjects возвращать разные значения в зависимости от параметра?

9
ответ дан 30 November 2019 в 14:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: