Мне нужно написать модульный тест для следующего кода:
$attempts = 1;
$data = null;
while (null === $data) {
try {
$data = $this->service->function();
} catch (\Exception $e) {
if ($attempts >= self::MAX_NUM_OF_ATTEMPTS) {
throw $e;
}
$attempts++;
}
}
Мне нужно, чтобы модульный тест возвратил исключение с первой попытки и успешный ответ со второй попытки.
Я пробовал что-то вроде
$this->service->function()->willThrow(\Exception::class);
$this->service->function()->will(function ($client, $succes) {
$this->service->function($client)->willReturn($succes);
});
но тогда я получаю ошибку: вызов функции-члена () в null