ergebnis/data-provider

Provides generic data providers for use with phpunit/phpunit.

Fund package maintenance!
localheinz

1.0.0 2021-11-25 19:54 UTC

This package is auto-updated.

Last update: 2021-11-25 20:08:45 UTC


README

Integrate Prune Release Renew

Code Coverage Type Coverage

Latest Stable Version Total Downloads

Installation

Run

composer require --dev ergebnis/data-provider

Usage

This package provides the following generic data providers:

Since it is possible to use multiple @dataProvider annotations for test methods, these generic data providers allow for reuse and composition of data providers:

<?php

declare(strict_types=1);

namespace Example\Test;

use PHPUnit\Framework;

final class ExampleTest extends Framework\TestCase
{
    /**
     * @dataProvider \Ergebnis\DataProvider\StringProvider::blank()
     * @dataProvider \Ergebnis\DataProvider\StringProvider::empty()
     */
    public function testFromNameRejectsBlankOrEmptyStrings(string $value): void
    {
        $this->expectException(\InvalidArgumentException::class);
        $this->expectExceptionMessage('Value can not be an empty or blank string.');

        UserName::fromString($value);
    }
}

DataProvider\BoolProvider

  • arbitrary() provides true, false
  • false() provides false
  • true() provides true

For examples, see Ergebnis\DataProvider\Test\Unit\BoolProviderTest.

DataProvider\FloatProvider

  • arbitrary() provides arbitrary floats
  • greaterThanOne() provides ints greater than 1.0
  • greaterThanZero() provides ints greater than 0.0
  • lessThanOne() provides ints less than 1.0
  • lessThanZero() provides ints less than 0.0
  • one() provides 1.0
  • zero() provides 0.0

For examples, see Ergebnis\DataProvider\Test\Unit\FloatProviderTest.

DataProvider\IntProvider

  • arbitrary() provides arbitrary ints
  • greaterThanOne() provides ints greater than 1
  • greaterThanZero() provides ints greater than 0
  • lessThanOne() provides ints less than 1
  • lessThanZero() provides ints less than 0
  • one() provides 1
  • zero() provides 0

For examples, see Ergebnis\DataProvider\Test\Unit\IntProviderTest.

DataProvider\NullProvider

  • null() provides null

For examples, see Ergebnis\DataProvider\Test\Unit\NullProviderTest.

DataProvider\ObjectProvider

  • object() provides an instance of stdClass

For examples, see Ergebnis\DataProvider\Test\Unit\ObjectProviderTest.

DataProvider\ResourceProvider

  • resource() provides a resource

For examples, see Ergebnis\DataProvider\Test\Unit\ResourceProviderTest.

DataProvider\StringProvider

  • arbitrary() provides arbitrary strings
  • blank() provides strings consisting of whitespace characters only
  • empty() provides an empty string
  • trimmed() provides non-empty, non-blank strings without leading and trailing whitespace
  • untrimmed() provides non-empty, non-blank strings with additional leading and trailing whitespace
  • withWhitespace() provides non-empty, non-blank, trimmed strings containing whitespace

For examples, see Ergebnis\DataProvider\Test\Unit\StringProviderTest.

Changelog

Please have a look at CHANGELOG.md.

Contributing

Please have a look at CONTRIBUTING.md.

Code of Conduct

Please have a look at CODE_OF_CONDUCT.md.

License

This package is licensed using the MIT License.

Please have a look at LICENSE.md.

Curious what I am building?

📬 Subscribe to my list, and I will occasionally send you an email to let you know what I am working on.