Я работаю над тестом в phpunit и столкнулся с проблемой. В моем классе есть публичная функция, которую я пытаюсь проверить. В зависимости от параметров, переданных в метод, защищенная функция также в моем тестовом классе будет вызываться один или два раза. В настоящее время у меня есть тест для проверки правильности возвращаемых данных, но я также хотел бы убедиться, что защищенный метод вызывается правильное количество раз.
Я знаю, что фиктивный объект позволит мне подсчитать, сколько раз вызывается функция, но он также переопределит значение, возвращаемое защищенной функцией. Я попытался использовать фиктивный объект без раздела «завещание», но он просто вернул бы ноль, а не фактическое значение для защищенного метода.
ExampleClass
public function do_stuff($runTwice){
$results = do_cool_stuff();
if($runTwice){
$results = 2 * do_cool_stuff();
}
return $results;
}
protected function do_cool_stuff()
{
return 2;
}
В моем тесте я хочу проверить, вызывался ли do_cool_stuff () один или два раза, но я все же хочу, чтобы возвращаемые значения обеих функций были одинаковыми, поэтому я могу также проверить их в своем модульном тесте.
ТЛ; др
Я хочу подсчитать, сколько раз вызывается защищенный метод в моем тестовом объекте (как вы можете сделать с фиктивным объектом), но я все еще хочу, чтобы все методы в моем тестовом методе возвращали свои нормальные значения (не как фиктивный объект) .