seec/phpunit-consecutive-params

直接替换被移除的 PhpUnit 的 ConsecutiveParams 特性

1.1.4 2023-12-18 22:50 UTC

This package is auto-updated.

Last update: 2024-08-29 10:05:19 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

PHPUnit 连续参数

PHPUnit 移除了使用 withConsecutive 的可能性 之后,这被成千上万的单元测试所使用,开发者需要一个替换方案,但目前还没有提供一种整洁的方案。

在此问题在 PHPUnit 中直接解决之前,这个库提供了一个简单的解决方案,以便再次使用 withConsecutive 的替换方案。原始解决方案 在此处发布

安装

$ composer require --dev seec/phpunit-consecutive-params

使用方法

<?php

declare(strict_types=1);

namespace Your\Namespace\For\Tests;

use SEEC\PhpUnit\Helper\ConsecutiveParams;

final class TestRunnerContextTest extends TestCase
{
    use ConsecutiveParams;
    ...

    public function test_it_can_use_consecutive_replacement(): void
    {
        $mock = $this->createMock(\stdClass::class);
        $mock->expects($this->exactly(3))
            ->method('foo')
            ->with(...$this->withConsecutive(
                ['a', 'b'],
                ['c', 'd'],
                ['e', 'f']
            ));
    }

另一个在正确格式化代码中自动替换的示例

->withConsecutive(
    ['a', 'b'],
    ['c', 'd'],
    ['e', 'f']
)

变为

->with(...$this->withConsecutive(
    ['a', 'b'],
    ['c', 'd'],
    ['e', 'f']
))