cetria/laravel-dummy-models package is designed to generate dummy/fake Eloquent models for Laravel applications, primarily useful for:
Factory, Mockery, or PHPUnit).composer require cetria/laravel-dummy-models).DummyModel::make(['name' => 'Test'])).| Risk Area | Assessment | Mitigation Strategy |
|---|---|---|
| Test Data Pollution | Dummy models may inadvertently replace real test data if not namespaced. | Use distinct model names (e.g., UserDummy vs. User) or environment checks. |
| Performance Overhead | Generating complex dummy models may slow down tests. | Limit usage to critical test scenarios; avoid over-engineering dummy data. |
| Maintenance Debt | Dummy models may diverge from real models, requiring sync updates. | Treat dummy models as disposable; use them only for transient needs. |
| Tooling Conflicts | May conflict with existing factories (Laravel’s Model::factory()). |
Prefer one approach (e.g., deprecate dummy models in favor of Laravel’s factories). |
| Limited Features | Lacks advanced features (e.g., soft deletes, timestamps, observers). | Supplement with Laravel’s built-in testing tools where needed. |
Model::factory() or serve a niche use case (e.g., legacy codebases)?testing environment only, or also in development?fake() or Model::factory() achieve the same goals with less overhead?Model::factory() to justify adoption.Tag, Log) to test dummy model behavior.use Cetria\DummyModels\DummyModel;
class UserDummy extends DummyModel {
protected $fillable = ['name', 'email'];
}
// Usage in test:
$dummyUser = UserDummy::make(['name' => 'Test User']);
main.$fillable.laravel/browsershot).fake() or factories.tests/DummyModels/).if (app()->environment('testing')) {
return new UserDummy();
}
return new User();
DummyModel to include custom logic for edge cases.fake()).| Scenario | Impact | Recovery Strategy |
|---|---|---|
| Dummy model conflicts with real model | Tests pass locally but fail in CI due to environment differences. | Use app()->environment() checks to isolate dummy models. |
| Unintended production usage | Dummy model logic leaks into production. | Enforce strict environment checks and CI gates. |
| Package abandonment | Laravel updates break compatibility. | Fork the package or migrate to Laravel’s native tools. |
| Over-reliance on dummies | Business logic tests become flaky. | Reserve dummy models for low-level tests only. |
User entity.How can I help you explore Laravel packages today?