PHPUnit WithConsecutive 消失了,推荐的方法是什么?

问题描述 投票:0回答:1

PHPUnit 删除了 Consecutive。有多种方法可以解决它以重现类似的行为,我在这个网站中找到了这些方法。

这个问题不是关于解决方法或替换 - 我想知道对于某些似乎需要这种删除行为的情况,推荐的方法是什么。

举个例子。

我们有一个 Client 对象。该客户端有两个方法,一个 getToken 和一个 postData。

class MyClient {
    public function __construct(private HttpClient $client)
    {
    }

    public function getToken(): string
    {
        return $this->client->post('some-url', ['some parameters'];
    }

    public function postData(array $data, string $token = null): void
    {
        if(is_null($token))
        {
            $token = $this->getToken();
        }

        $this->client->post('some-other-url', ['token' => $token, 'some-more-params']);
    }

如果没有

withConsecutive
,模拟这个的方法是什么?

php phpunit
1个回答
0
投票

PHPUnit

withConsecutive()
的升级方式大约有大约 10 种变体。如果有参考,后面加
willReturn*()
willReturnOnConsecutive()

我没有创建仅适合一个特定问题的答案,而是写了一篇文章来解释如何升级所有类型的组合。

参见: https://tomasvotruba.com/blog/how-to-upgrade-deprecated-phpunit-with-consecutive

希望您会发现它很有用。

它包括 PHP 7.* 就绪代码(没有

match
),可以在 PHPUnit 9(需要 7.3+)中使用

© www.soinside.com 2019 - 2024. All rights reserved.