ergebnis / data-provider
为 phpunit/phpunit 提供通用数据提供者。
Requires
- php: ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0
- fakerphp/faker: ^1.21.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.28.3
- ergebnis/license: ^2.4.0
- ergebnis/php-cs-fixer-config: ^6.13.0
- infection/infection: ~0.26.6
- phpunit/phpunit: ^9.6.13
- psalm/plugin-phpunit: ~0.18.4
- rector/rector: ~0.18.11
- vimeo/psalm: ^5.16.0
README
本项目提供了一个 composer
包,用于与 phpunit/phpunit
一起使用,提供通用数据提供者。
安装
运行
composer require ergebnis/data-provider
用法
此包提供了以下通用数据提供者
Ergebnis\DataProvider\BoolProvider
Ergebnis\DataProvider\FloatProvider
Ergebnis\DataProvider\IntProvider
Ergebnis\DataProvider\NullProvider
Ergebnis\DataProvider\ObjectProvider
Ergebnis\DataProvider\ResourceProvider
Ergebnis\DataProvider\StringProvider
Ergebnis\DataProvider\UuidProvider
由于可以为测试方法使用多个 @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.0zero()
提供整数 0.0
示例请见 Ergebnis\DataProvider\Test\Unit\FloatProviderTest
。
DataProvider\IntProvider
arbitrary()
提供任意整数greaterThanOne()
提供大于 1 的整数greaterThanZero()
提供大于 0 的整数lessThanOne()
提供小于 1 的整数lessThanZero()
提供小于 0 的整数one()
提供整数 1zero()
提供整数 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()
提供大小写混合的 UUIDcaseLower()
提供小写 UUIDcaseUpper()
提供大写 UUID
有关示例,请参阅 Ergebnis\DataProvider\Test\Unit\UuidProviderTest
。
更新日志
此项目的维护者在此 更新日志 中记录了此项目的显著变更。
贡献
此项目的维护者建议遵循 贡献指南。
行为准则
此项目的维护者要求贡献者遵循 行为准则。
一般支持政策
此项目的维护者提供有限的支持。
您可以通过 赞助 @localheinz 或 请求此项目相关服务的发票 来支持此项目的维护。
PHP 版本支持政策
此项目支持具有 活跃和安全支持 的 PHP 版本。
此项目的维护者在 PHP 版本最初发布后添加对该 PHP 版本的支持,并在其达到安全支持结束时停止对该 PHP 版本的支持。
安全策略
此项目有一个 安全策略。
许可证
此项目使用 MIT 许可证。
社交
关注 Twitter 上的 @localheinz 和 @ergebnis。