我需要为以下代码编写单元测试:
$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上调用成员函数function()