aaronbullard/factory-biscuit
Composer 安装命令:
composer require --dev aaronbullard/factory-biscuit
包简介
Quickly create PHP class instances for testing using Faker and Firehose Hydrator.
README 文档
README
Quickly create PHP class instances for testing using Faker and Firehose Hydrator.
Installation
Library
git clone git@github.com:aaronbullard/factory-biscuit.git
Composer
composer require aaronbullard/factory-biscuit
Testing
composer test
Usage
Define your factories
// Factories.php use Faker\Generator; use FactoryBiscuit\Factory; use FactoryBiscuit\Tests\Mocks\Entity\Foo; use FactoryBiscuit\Tests\Mocks\Entity\Bar; $factory->define(Foo::class, function(Generator $faker, Factory $factory){ return [ 'bar' => function() use ($factory){ return $factory->of(Bar::class)->make(); }, 'baz' => $faker->word, 'qux' => $faker->word ]; }); $factory->define(Bar::class, function(Generator $faker, Factory $factory){ return [ 'bar' => $faker->word ]; });
Load your factory file
use FactoryBiscuit\Factory; $factory = new Factory(); $factory->load(__DIR__ . '/Factories.php');
Examples
Create an instance
$foo = $factory->of(Foo::class)->make(); $this->assertInstanceOf(Foo::class, $foo);
Create multiple instances
$foos = $factory->of(Foo::class)->times(3)->make(); $this->assertInstanceOf(Foo::class, $foos[0]); $this->assertCount(3, $foos);
Override attributes of an instance
$foo = $factory->of(Foo::class)->make([ 'baz' => 'newBaz' ]); $this->assertEquals('newBaz', $foo->baz());
Create a specially defined instance type
// Create a factory of class Foo with settings of 'colors' $factory->defineAs(Foo::class, 'colors', function($faker, $factory){ return [ 'bar' => 'red', 'baz' => 'green', 'qux' => 'blue' ]; }); $foo = $factory->of(Foo::class, 'colors')->make(); $this->assertInstanceOf(Foo::class, $foo); $this->assertEquals('red', $foo->bar()); $this->assertEquals('green', $foo->baz());
Implement the FactoryBiscuit\ManagerRegistry interface to persist instances upon creation
$factory = new Factory(Faker::create(), $managerRegistry); // call the 'create' method to create a persisted instance $user = $factory->of(User::class)->create(); $this->assertInstanceOf(User::class, $user); $this->assertTrue( DB::table('users')->where('id', '=', $user->id)->exists() );
For more examples, see the tests: tests\FactoryTest.php
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-11-24