124 words, 1 min read

After PHPUnit has removed the possibility to use withConsecutive, which was used by thousand of UnitTests, developers need a replacement which is not offered in a neat way at the moment.

Until this problem is solved directly in PHPUnit, this library offers a simple solution to use a replacement of withConsecutive again. The original solution posted here.

Installation

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

Usage

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']
));
}

Another example for automatic replacement in correctly formatted code:

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

becomes

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

source