ergebnis/data-provider
Generate data providers for PHPUnit from arrays, iterables, or generators with a small, focused API. Helps build readable, reusable test datasets and named cases, reducing boilerplate when writing parameterized tests in PHP.
composer require --dev ergebnis/data-provider.DataProvider::fromArray() or fromIterable(), passing a typed array of fixtures (e.g., #[DataProvider\Name('valid user')] ['id' => 1, 'name' => 'Alice']).#[DataProvider\Name('valid user')] or use @dataProvider to consume named datasets—ideally by importing providers via use and referencing them directly (e.g., MyTest::dataProvider()).@dataProvider arrays in multiple tests with a single reusable provider file (e.g., src/Test/DataProvider/UserProvider.php), exporting clean, typed fixtures.UserProvider with valid/invalid users, extended by UserWithPermissionsProvider adding role mappings.fromTraversable() for dynamic generation: Use generators or collections (e.g., from factories or DB fixtures) as inputs to avoid loading all data into memory.DataProvider::merge() or concat() to unify unrelated datasets (e.g., merge UserProvider + ProductProvider for integration tests).TestCase subclasses or traits that include default providers (e.g., getStandardUserProvider()), promoting consistency across test suites.array{foo: int, bar: string}), and use static analysis tools to validate provider data shapes.UserProvider::VALID_WITH_ADMIN) or namespaces in provider classes.iterable|array or use @phpstan-return for precision.--testdox and --verbose to trace which named provider triggered the failure.DataProviderInterface subclasses for advanced behaviors (e.g., random data generation via Faker, context-aware fixtures).DataProvider::toArray() to assert dataset contents—prevents regressions in test fixtures.How can I help you explore Laravel packages today?