ergebnis/factory-muffin-definition

此包已被弃用,不再维护。未建议替代包。

提供league/factory-muffin的实体定义接口,以及查找和注册实体定义的简便方法。

2.0.0 2019-12-10 21:48 UTC

This package is auto-updated.

Last update: 2020-08-28 18:47:13 UTC


README

Integrate Prune Release Renew

Code Coverage Type Coverage

Latest Stable Version Total Downloads

提供league/factory-muffin的实体定义接口,以及查找和注册实体定义的简便方法,灵感来源于ergebnis/factory-girl-definition

安装

运行

$ composer require --dev ergebnis/factory-muffin-definition

使用

创建定义

实现Definition接口,并将传递的League\FactoryMuffin\FactoryMuffin实例传递给accept()以定义实体

<?php

namespace Foo\Bar\Test\Fixture\Entity;

use Ergebnis\FactoryMuffin\Definition\Definition;
use Foo\Bar\Entity;
use League\FactoryMuffin\FactoryMuffin;

final class UserDefinition implements Definition
{
    public function accept(FactoryMuffin $factoryMuffin): void
    {
        $factoryMuffin->define(Entity\User::class)->setDefinitions([
            // ...
        ]);
    }
}

💡 在定义中可以定义任意数量的实体。然而,为每个实体创建一个定义可能是个好主意。

注册定义

延迟实例化一个League\FactoryMuffin\FactoryMuffin实例,并使用Definitions查找定义并将它们注册到工厂中

<?php

namespace Foo\Bar\Test\Integration;

use Ergebnis\FactoryMuffin\Definition\Definitions;
use League\FactoryMuffin\FactoryMuffin;
use League\FactoryMuffin\Stores;
use PHPUnit\Framework;

abstract class AbstractIntegrationTestCase extends Framework\TestCase
{
    final protected function factoryMuffin(): FactoryMuffin
    {
        static $factoryMuffin = null;

        if (null === $factoryMuffin) {
            $factoryMuffin = new FactoryMuffin(new Stores\ModelStore('save'));

            Definitions::in(__DIR__ . '/../Fixture')->registerWith($factoryMuffin);
        }

        return $factoryMuffin;
    }
}

贡献

请查看CONTRIBUTING.md

行为准则

请查看CODE_OF_CONDUCT.md

许可

此包使用MIT许可证授权。

请查看LICENSE.md

好奇我在构建什么?

📬 订阅我的列表,我将不定期通过电子邮件通知你我在做什么。