Generate realistic test data with FakerPHP for names, emails, and complex domain objects.
Faker for Test Data
composer require --dev fakerphp/faker
use Faker\Factory as Faker;
class UserRepositoryTest extends TestCase {
private function makeUser(array $overrides = []): array {
$faker = Faker::create();
return array_merge([
"name" => $faker->name(),
"email" => $faker->unique()->safeEmail(),
"age" => $faker->numberBetween(18, 80),
], $overrides);
}
public function testCreateUser(): void {
$data = $this->makeUser(["email"=>"fixed@test.com"]);
$user = (new UserRepository($this->db))->create($data);
$this->assertEquals("fixed@test.com", $user->email);
}
}