Skip to content

Commit 4041c82

Browse files
authored
Improve EmptyDataProviderRule (#354)
1 parent 50bfd3c commit 4041c82

3 files changed

Lines changed: 27 additions & 1 deletion

File tree

‎src/Rules/PHPUnit/EmptyDataProviderRule.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public function processNode(Node $node, Scope $scope): array
6363
foreach ($returnStatements as $returnStatement) {
6464
$returnExpr = $returnStatement->getReturnNode()->expr;
6565
if ($returnExpr === null) {
66-
return [];
66+
continue;
6767
}
6868

6969
$returnType = $returnStatement->getScope()->getType($returnExpr);

‎tests/Rules/PHPUnit/EmptyDataProviderRuleTest.php‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ public function testRule(?int $version): void
6363
'Data provider method provideData() provides no data sets, which is an error in PHPUnit 10 and newer.',
6464
158,
6565
];
66+
$errors[] = [
67+
'Data provider method provideData() provides no data sets, which is an error in PHPUnit 10 and newer.',
68+
190,
69+
];
6670
}
6771

6872
// DataProviderHelper only reads the attribute when the detected major version supports it.

‎tests/Rules/PHPUnit/data/empty-data-provider.php‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,3 +300,25 @@ public static function provideData(bool $flag = false)
300300
}
301301

302302
}
303+
304+
class IteratorWithEmptyReturn extends \PHPUnit\Framework\TestCase
305+
{
306+
307+
/**
308+
* @return iterable<mixed>
309+
*/
310+
public function dataFileAsserts(): iterable
311+
{
312+
if (PHP_VERSION_ID >= 80000) {
313+
return [];
314+
}
315+
316+
yield 1;
317+
yield 2;
318+
}
319+
320+
/**
321+
* @dataProvider dataFileAsserts
322+
*/
323+
public function testFileAsserts() {}
324+
}

0 commit comments

Comments
 (0)