Skip to main content

What are Model Factories?

Model factories are blueprints for generating fake but realistic data for testing. They use libraries like Faker.js to create random names, emails, addresses, and other data that looks real.
Real-world analogy: Factories are like cookie cutters. You define the shape (the data structure), and the factory can quickly produce many cookies (model instances) with different decorations (random data) but the same basic shape.

Creating Factories

Using the CLI

Basic Factory Structure

Using Factories

Creating Single Records

Creating Multiple Records

Making Without Saving

Advanced Factory Patterns

Factory States

Define different variations of your factory:

Using States

Sequences

Generate sequential data:

Callbacks and Hooks

Relationship Factories

Has One Relationship

Has Many Relationship

Many-to-Many Relationship

Polymorphic Relationships

Complex Factory Examples

E-commerce Factory

Blog Factory

Testing with Factories

Unit Tests

Integration Tests

Database Seeding with Factories

Custom Faker Providers

Creating Custom Data

Locale-Specific Data

Performance Optimization

Batch Creation

Reusing Data

Best Practices

1. Keep Factories Simple

2. Use Consistent Test Data

3. Organize Factories by Domain

4. Document Factory States

Next Steps

Database Connections

Learn to manage multiple database connections

Advanced Features

Explore events, observers, and custom casting