Я работаю над тестом в phpunit, и у меня возникает проблема. У меня есть публичная функция в моем классе, которую я пытаюсь проверить. В зависимости от параметров, переданных методу, защищенная функция также в моем тестовом классе будет вызываться один или два раза. В настоящее время у меня есть тест, чтобы проверить правильность возвращаемых данных, но я также хотел бы убедиться, что защищенный метод называется правильным числом раз.PHPUnit Test Сколько раз вызывается функция
Я знаю, что макет объекта позволяет мне подсчитать количество раз, когда функция вызывается, но она также переопределит значение, возвращаемое защищенной функцией. Я пробовал использовать mock-объект без секции «will», но он просто вернул бы null, а не фактическое значение для защищенного метода.
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() один или два раза, но я все равно хочу возвращаемые значения обеих функций, чтобы быть такой же, так что я могу проверить их в качестве хорошо в моем модульном тесте.
tl; dr Я хочу подсчитать количество раз, когда вызывается защищенный метод в моем тестовом объекте (как вы можете сделать с макетным объектом), но я все же хочу, чтобы все методы в моем тестовом методе возвращали их нормальный значения (не как макет объекта).