Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9e1b9de

Browse files
mad-brillerondrejmirtes
authored andcommitted
Warn when trying to cover an interface.
1 parent ceea85e commit 9e1b9de

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

‎src/Rules/PHPUnit/CoversHelper.php‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,13 @@ public function processCovers(
9595
if ($this->reflectionProvider->hasClass($className)) {
9696
$class = $this->reflectionProvider->getClass($className);
9797

98+
if ($class->isInterface()) {
99+
$errors[] = RuleErrorBuilder::message(sprintf(
100+
'@covers value %s references an interface.',
101+
$fullName
102+
))->build();
103+
}
104+
98105
if (isset($method) && $method !== '' && !$class->hasMethod($method)) {
99106
$errors[] = RuleErrorBuilder::message(sprintf(
100107
'@covers value %s references an invalid method.',
@@ -105,7 +112,6 @@ public function processCovers(
105112
return $errors;
106113
} elseif (!isset($method) && $this->reflectionProvider->hasFunction(new Name($className, []), null)) {
107114
return $errors;
108-
109115
} else {
110116
$error = RuleErrorBuilder::message(sprintf(
111117
'@covers value %s references an invalid %s.',

‎tests/Rules/PHPUnit/ClassCoversExistsRuleTest.php‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ public function testRule(): void
4545
50,
4646
'The @covers annotation requires a fully qualified name.',
4747
],
48+
[
49+
'@covers value \DateTimeInterface references an interface.',
50+
64,
51+
],
4852
]);
4953
}
5054

‎tests/Rules/PHPUnit/data/class-coverage.php‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,10 @@ class CoversNotFullyQualified extends \PHPUnit\Framework\TestCase
5757
class CoversGlobalFunction extends \PHPUnit\Framework\TestCase
5858
{
5959
}
60+
61+
/**
62+
* @covers \DateTimeInterface
63+
*/
64+
class CoversInterface extends \PHPUnit\Framework\TestCase
65+
{
66+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /