diff --git a/config/sets/phpunit-mock-to-stub.php b/config/sets/phpunit-mock-to-stub.php index 72cd48c8..47b26e3e 100644 --- a/config/sets/phpunit-mock-to-stub.php +++ b/config/sets/phpunit-mock-to-stub.php @@ -4,6 +4,7 @@ use Rector\Config\RectorConfig; use Rector\PHPUnit\CodeQuality\Rector\Class_\AddIntersectionVarToMockObjectPropertyRector; +use Rector\PHPUnit\CodeQuality\Rector\ClassMethod\BareCreateMockAssignToDirectUseRector; use Rector\PHPUnit\CodeQuality\Rector\Class_\AddStubIntersectionVarToStubPropertyRector; use Rector\PHPUnit\PHPUnit120\Rector\CallLike\CreateStubInCoalesceArgRector; use Rector\PHPUnit\PHPUnit120\Rector\CallLike\CreateStubOverCreateMockArgRector; @@ -21,5 +22,6 @@ MockObjectVarToStubRector::class, AddIntersectionVarToMockObjectPropertyRector::class, AddStubIntersectionVarToStubPropertyRector::class, + BareCreateMockAssignToDirectUseRector::class, ]); }; diff --git a/rules-tests/CodeQuality/Rector/Class_/RemoveNeverUsedMockPropertyRector/Fixture/skip_test_case_suffix.php.inc b/rules-tests/CodeQuality/Rector/Class_/RemoveNeverUsedMockPropertyRector/Fixture/skip_test_case_suffix.php.inc new file mode 100644 index 00000000..72895854 --- /dev/null +++ b/rules-tests/CodeQuality/Rector/Class_/RemoveNeverUsedMockPropertyRector/Fixture/skip_test_case_suffix.php.inc @@ -0,0 +1,19 @@ +mockProperty = $this->createMock(\stdClass::class); + $this->mockProperty->expects($this->once()) + ->method('someMethod') + ->willReturn('someValue'); + } +} diff --git a/rules/CodeQuality/Rector/Class_/RemoveNeverUsedMockPropertyRector.php b/rules/CodeQuality/Rector/Class_/RemoveNeverUsedMockPropertyRector.php index 42b3bc7c..3f520807 100644 --- a/rules/CodeQuality/Rector/Class_/RemoveNeverUsedMockPropertyRector.php +++ b/rules/CodeQuality/Rector/Class_/RemoveNeverUsedMockPropertyRector.php @@ -92,6 +92,11 @@ public function refactor(Node $node): ?Node return null; } + // skip abstract test case classes, as most likely extended and mock used in child classes + if (str_ends_with((string) $this->getName($node), 'TestCase')) { + return null; + } + $setUpClassMethod = $node->getMethod(MethodName::SET_UP); if (! $setUpClassMethod instanceof ClassMethod) { return null;