Skip to content

A usable replacement for PHPUnit withConsecutive after it got deprecated without a replacement.

License

Notifications You must be signed in to change notification settings

bytes-commerce/phpunit-consecutive-params

Repository files navigation

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

PHPUnit Consecutive Parameters

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

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

Another example for automatic replacement in correctly formatted code:

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

becomes

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

About

A usable replacement for PHPUnit withConsecutive after it got deprecated without a replacement.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •