-
-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Milestone
Description
Support for combining multiple data sources in parameterized tests.
Features
Union: multiple #[DataProvider]
#[DataProvider('foos')]
#[DataProvider('bars')]
public function testMethod(string $value) {}Datasets: foos:0, foos:1, bars:0, bars:1
#[DataZip]: combine by index
#[DataZip([
new DataProvider('letters'), // yields 'a', 'b'
new DataProvider('numbers'), // yields 1, 2
])]
public function testMethod(string $letter, int $number) {}| Dataset | $letter | $number |
|---|---|---|
| 0 | a | 1 |
| 1 | b | 2 |
Throws error if providers have different lengths.
#[DataCross]: cartesian product
#[DataCross([
new DataProvider('letters'), // yields 'a', 'b'
new DataProvider('numbers'), // yields 1, 2
])]
public function testMethod(string $letter, int $number) {}| Dataset | $letter | $number |
|---|---|---|
| 0 | a | 1 |
| 1 | a | 2 |
| 2 | b | 1 |
| 3 | b | 2 |
Notes
- Named yields preserved:
admin|read,admin|write, etc. - Empty provider → Risky
Future Scope
DataSetsupport in combinators
Metadata
Metadata
Assignees
Labels
No labels