FactoryMuffin for CakePHP 3.
Out of the box FactoryMuffin wraps Faker methods to generate dummy data for your entities.
I originally started by releasing gourmet/faker, which worked great for inserting dummy data to use in demos and even in tests. However, as time went by, I realized that in many cases, I was just repeating myself. That's when I remembered @savant mentioning FactoryMuffin to me a while back and after a quick look, it became obvious this was exactly what I needed.
I still use the Faker plugin, because in some cases just absracting everything using factories ends up being even more work. So, if you need granularity when creating dummy data, try it; but in most cases, stick to this one.
composer require --dev gourmet/muffin:~0.1
No need to load it in bootstrap.php
.
Assuming you have a Posts
model (table, entity and fixture), to create fake data, you'll first
need to define the factory in tests/Factory/PostFactory
:
<?php
namespace App\Test\Factory;
use Gourmet\Muffin\TestSuite\TestFactory;
class PostFactory extends TestFactory
{
public $title = 'sentence|5'; // a sentence with 5 words
public $body = 'text'; // some text
public $author = 'name'; // a person's name
}
Which you can then use in your tests like so:
public function setUp()
{
$this->FeedFactory = new \App\Test\Factory\PostFactory();
}
public function testSomething()
{
$post = $this->FeedFactory(1); // create a single record
$this->assertTrue(isset($post->id));
$this->FeedFactory(10); // create 10 records
}
For more information on the available methods for creating dummy data and how to use them, check the FactoryMuffin and Faker docs.
Copyright (c)2015, Jad Bitar and licensed under The MIT License.