icanhazstring / phpunit-faker-extension
PHPUnit 扩展,用于添加 faker 支持
0.1
2019-01-25 14:32 UTC
Requires
- php: ^7.1
- fzaninotto/faker: ^1.8
- phpunit/phpunit: ^7.5
Requires (Dev)
- roave/security-advisories: dev-master
- slevomat/coding-standard: ^4.8
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2024-08-26 04:28:17 UTC
README
使用此扩展,您可以在 PHPUnit 测试中使用 fzaninotto/faker。每个测试都将被播种,因此如果您遇到错误,您可以再次运行相同的测试。
安装
您可以通过使用 Composer 来安装此扩展。应将此包添加为 require-dev
依赖项
composer require --dev icanhazstring/phpunit-faker-extension
用法
通过将以下代码添加到您的项目 phpunit.xml
文件中,以启用所有默认值
<phpunit bootstrap="vendor/autoload.php"> ... <listeners> <listener class="PHPUnitFaker\FakerTestListener" /> </listeners> </phpunit>
现在按正常方式运行测试套件。一旦所有测试完成,您将看到用于生成 faker 数据的种子
使用种子完成的测试:XXX
在测试中使用 Fake
要在测试中使用 faker,您需要实现 FakerAwareTest
接口和 FakerTrait
。由于并非所有测试都需要 faker,该接口确保只有使用 faker 的测试才能获取所需的数据。
实际上调用您只需做以下操作
class AwesomeTest extends TestCase implements FakerAwareTest { use FakerTrait; public function testAwesomeStuff(): void { $this->assertSame($this->fake()->name, $this->fake()->name); } }
有关格式化程序的信息,请参阅 faker 文档:https://github.com/fzaninotto/faker#formatters
使用给定的种子运行测试
要使用给定的种子运行测试,请在运行 phpunit 之前设置 PHPUNIT_SEED
环境变量
$ PHPUNIT_SEED=XXX vendor/bin/phpunit
配置
此扩展有三个可配置参数
- locale - faker 应使用的区域设置(默认:
en_GB
) - fakerProviderProvider - (我知道这个名称很愚蠢)一个返回提供者列表的可调用类(字符串或实例)
在添加监听器时在 phpunit.xml
中设置这些配置参数
<phpunit bootstrap="vendor/autoload.php"> <!-- ... other suite configuration here ... --> <listeners> <listener class="PHPUnitFaker\FakerTestListener"> <arguments> <array> <element key="locale"> <string>de_DE</string> </element> <element key="fakerProviderProvider"> <string>Your\FakerProviderProvider</string> </element> </array> </arguments> </listener> </listeners> </phpunit>
许可证
phpunit-faker-extension 在 MIT 许可证下可用。