Skip to content

Commit 9223252

Browse files
staabmsebastianbergmann
authored andcommitted
Better error message when data provider is invalid
1 parent 386550a commit 9223252

File tree

5 files changed

+8
-7
lines changed

5 files changed

+8
-7
lines changed

src/Metadata/Api/DataProvider.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,9 @@ public function providedData(string $className, string $methodName): ?array
7979
if (!is_array($value)) {
8080
throw new InvalidDataProviderException(
8181
sprintf(
82-
'Data set %s is invalid',
82+
'Data set %s is invalid, expected array but got %s',
8383
is_int($key) ? '#' . $key : '"' . $key . '"',
84+
get_debug_type($value),
8485
),
8586
);
8687
}

tests/end-to-end/event/invalid-data-provider-with-passing-test.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Data Provider Method Finished for PHPUnit\TestFixture\Event\InvalidDataProviderW
2727
- PHPUnit\TestFixture\Event\InvalidDataProviderWithOneTestPassingTest::provider
2828
Test Triggered PHPUnit Error (PHPUnit\TestFixture\Event\InvalidDataProviderWithOneTestPassingTest::testOne)
2929
The data provider specified for PHPUnit\TestFixture\Event\InvalidDataProviderWithOneTestPassingTest::testOne is invalid
30-
Data set #0 is invalid
30+
Data set #0 is invalid, expected array but got int
3131
Test Suite Loaded (1 test)
3232
Test Runner Started
3333
Test Suite Sorted

tests/end-to-end/event/invalid-data-provider.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Data Provider Method Finished for PHPUnit\TestFixture\Event\InvalidDataProviderT
2727
- PHPUnit\TestFixture\Event\InvalidDataProviderTest::provider
2828
Test Triggered PHPUnit Error (PHPUnit\TestFixture\Event\InvalidDataProviderTest::testOne)
2929
The data provider specified for PHPUnit\TestFixture\Event\InvalidDataProviderTest::testOne is invalid
30-
Data set #0 is invalid
30+
Data set #0 is invalid, expected array but got int
3131
Test Runner Triggered Warning (No tests found in class "PHPUnit\TestFixture\Event\InvalidDataProviderTest".)
3232
Test Suite Loaded (0 tests)
3333
Test Runner Started

tests/end-to-end/regression/2137-filter.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ There were 2 PHPUnit errors:
1919

2020
1) PHPUnit\TestFixture\Issue2137Test::testBrandService
2121
The data provider specified for PHPUnit\TestFixture\Issue2137Test::testBrandService is invalid
22-
Data set #0 is invalid
22+
Data set #0 is invalid, expected array but got stdClass
2323

2424
%s:%d
2525

2626
2) PHPUnit\TestFixture\Issue2137Test::testSomethingElseInvalid
2727
The data provider specified for PHPUnit\TestFixture\Issue2137Test::testSomethingElseInvalid is invalid
28-
Data set #0 is invalid
28+
Data set #0 is invalid, expected array but got stdClass
2929

3030
%s:%d
3131

tests/end-to-end/regression/2137-no_filter.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ There were 2 PHPUnit errors:
1717

1818
1) PHPUnit\TestFixture\Issue2137Test::testBrandService
1919
The data provider specified for PHPUnit\TestFixture\Issue2137Test::testBrandService is invalid
20-
Data set #0 is invalid
20+
Data set #0 is invalid, expected array but got stdClass
2121

2222
%s:%d
2323

2424
2) PHPUnit\TestFixture\Issue2137Test::testSomethingElseInvalid
2525
The data provider specified for PHPUnit\TestFixture\Issue2137Test::testSomethingElseInvalid is invalid
26-
Data set #0 is invalid
26+
Data set #0 is invalid, expected array but got stdClass
2727

2828
%s:%d
2929

0 commit comments

Comments
 (0)