ergebnis/data-provider

为 phpunit/phpunit 提供通用数据提供者。

3.2.0 2023-11-30 17:30 UTC

README

Integrate Merge Release Renew

Code Coverage Type Coverage

Latest Stable Version Total Downloads Monthly Downloads

本项目提供了一个 composer 包,用于与 phpunit/phpunit 一起使用,提供通用数据提供者。

安装

运行

composer require ergebnis/data-provider

用法

此包提供了以下通用数据提供者

由于可以为测试方法使用多个 @dataProvider 注释PHPUnit\Framework\Attribute\DataProviderExternal 属性,因此这些通用数据提供者允许重复使用和组合数据提供者

<?php

declare(strict_types=1);

namespace Example\Test;

use Ergebnis\DataProvider;
use PHPUnit\Framework;

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

        UserName::fromString($value);
    }

    #[Framework\DataProviderExternal(DataProvider\StringProvider::class, 'blank')]
    #[Framework\DataProviderExternal(DataProvider\StringProvider::class, 'empty')]
    public function testFromNameRejectsInvalidValueWithAttribute(string $value): void
    {
        $this->expectException(\InvalidArgumentException::class);
        $this->expectExceptionMessage('Value can not be an empty or blank string.');

        UserName::fromString($value);
    }
}

DataProvider\BoolProvider

  • arbitrary() 提供布尔值
  • false() 提供假值
  • true() 提供真值

示例请见 Ergebnis\DataProvider\Test\Unit\BoolProviderTest

DataProvider\FloatProvider

  • arbitrary() 提供任意浮点数
  • greaterThanOne() 提供大于 1.0 的整数
  • greaterThanZero() 提供大于 0.0 的整数
  • lessThanOne() 提供小于 1.0 的整数
  • lessThanZero() 提供小于 0.0 的整数
  • one() 提供整数 1.0
  • zero() 提供整数 0.0

示例请见 Ergebnis\DataProvider\Test\Unit\FloatProviderTest

DataProvider\IntProvider

  • arbitrary() 提供任意整数
  • greaterThanOne() 提供大于 1 的整数
  • greaterThanZero() 提供大于 0 的整数
  • lessThanOne() 提供小于 1 的整数
  • lessThanZero() 提供小于 0 的整数
  • one() 提供整数 1
  • zero() 提供整数 0

示例请见 Ergebnis\DataProvider\Test\Unit\IntProviderTest

DataProvider\NullProvider

  • null() 提供空值

示例请见 Ergebnis\DataProvider\Test\Unit\NullProviderTest

DataProvider\ObjectProvider

  • object() 提供一个 stdClass 实例

示例请见 Ergebnis\DataProvider\Test\Unit\ObjectProviderTest

DataProvider\ResourceProvider

  • resource() 提供资源

示例请见 Ergebnis\DataProvider\Test\Unit\ResourceProviderTest

DataProvider\StringProvider

  • arbitrary() 提供任意字符串
  • blank() 提供仅包含空白字符的字符串
  • empty() 提供空字符串
  • trimmed() 提供非空、非空白且不带前后空白的字符串
  • untrimmed() 提供非空、非空白且带额外前后空白的字符串
  • withWhitespace() 提供包含空白字符的非空、非空白、已裁剪的 string

有关示例,请参阅 Ergebnis\DataProvider\Test\Unit\StringProviderTest

DataProvider\UuidProvider

  • arbitrary() 提供大小写混合的 UUID
  • caseLower() 提供小写 UUID
  • caseUpper() 提供大写 UUID

有关示例,请参阅 Ergebnis\DataProvider\Test\Unit\UuidProviderTest

更新日志

此项目的维护者在此 更新日志 中记录了此项目的显著变更。

贡献

此项目的维护者建议遵循 贡献指南

行为准则

此项目的维护者要求贡献者遵循 行为准则

一般支持政策

此项目的维护者提供有限的支持。

您可以通过 赞助 @localheinz请求此项目相关服务的发票 来支持此项目的维护。

PHP 版本支持政策

此项目支持具有 活跃和安全支持 的 PHP 版本。

此项目的维护者在 PHP 版本最初发布后添加对该 PHP 版本的支持,并在其达到安全支持结束时停止对该 PHP 版本的支持。

安全策略

此项目有一个 安全策略

许可证

此项目使用 MIT 许可证

社交

关注 Twitter 上的 @localheinz@ergebnis