gourmet / muffin
FactoryMuffin support for CakePHP 3
Installs: 8 543
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 0
Open Issues: 1
Type:cakephp-plugin
Requires
- league/factory-muffin: ~2.1
Requires (Dev)
- phpunit/phpunit: 4.1.*
This package is auto-updated.
Last update: 2024-11-28 01:32:53 UTC
README
FactoryMuffin for CakePHP 3.
About
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.
Usage
composer require --dev gourmet/muffin:~0.1
No need to load it in bootstrap.php
.
Example
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.
License
Copyright (c)2015, Jad Bitar and licensed under The MIT License.