icanhazstring/phpunit-faker-extension

PHPUnit 扩展,用于添加 faker 支持

0.1 2019-01-25 14:32 UTC

This package is auto-updated.

Last update: 2024-08-26 04:28:17 UTC


README

Build Min php version Min phpunit version

使用此扩展,您可以在 PHPUnit 测试中使用 fzaninotto/faker。每个测试都将被播种,因此如果您遇到错误,您可以再次运行相同的测试。

phpunit-faker-extension-screenshot

安装

您可以通过使用 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 许可证下可用。