尝试不同结果的单元测试

时间:2019-04-08 07:46:34

标签: phpunit phpunit-testing prophecy

我需要为以下代码编写单元测试:

        $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()

0 个答案:

没有答案