Макет PHPUnit Измените ожидания позже

У меня есть простой вариант использования. Я хочу иметь метод setUp, который заставит мой фиктивный объект возвращать значение по умолчанию:

$this->myservice
        ->expects($this->any())
        ->method('checkUniqueness')
        ->will($this->returnValue(true));

Но затем в некоторых тестах я хочу вернуть другое значение:

$this->myservice
        ->expects($this->exactly(1))
        ->method('checkUniqueness')
        ->will($this->returnValue(false));

Я использовал GoogleMock для C++ в прошлом, и у него было «returnByDefault» или что-то в этом роде. Я не мог понять, возможно ли это в PHPUnit (, там нет документации по API, и код трудно прочитать, чтобы найти то, что я хочу ).

Теперь я не могу просто изменить $this->myserviceна новый макет, потому что при настройке я передаю его другим вещам, которые нужно смоделировать или протестировать.

Мое единственное другое решение состоит в том, что я теряю преимущества настройки и вместо этого должен создавать все свои макеты для каждого теста.

9
задан Matt 15 April 2012 в 20:35
поделиться