diff --git a/config/set/dead-code/dead-code.yaml b/config/set/dead-code/dead-code.yaml index dfdc5e4657b0..3e7ab49ddc4b 100644 --- a/config/set/dead-code/dead-code.yaml +++ b/config/set/dead-code/dead-code.yaml @@ -30,3 +30,4 @@ services: Rector\DeadCode\Rector\Stmt\RemoveUnreachableStatementRector: null Rector\DeadCode\Rector\If_\SimplifyIfElseWithSameContentRector: null Rector\DeadCode\Rector\Ternary\TernaryToBooleanOrFalseToBooleanAndRector: null + Rector\PHPUnit\Rector\ClassMethod\RemoveEmptyTestMethodRector: null diff --git a/docs/AllRectorsOverview.md b/docs/AllRectorsOverview.md index 2a8268a0b667..d09fc2a27ac4 100644 --- a/docs/AllRectorsOverview.md +++ b/docs/AllRectorsOverview.md @@ -1,4 +1,4 @@ -# All 430 Rectors Overview +# All 432 Rectors Overview - [Projects](#projects) - [General](#general) @@ -4536,6 +4536,27 @@ Fix data provider annotation typos
+### `GetMockBuilderGetMockToCreateMockRector` + +- class: `Rector\PHPUnit\Rector\MethodCall\GetMockBuilderGetMockToCreateMockRector` + +Remove getMockBuilder() to createMock() + +```diff + class SomeTest extends \PHPUnit\Framework\TestCase + { + public function test() + { +- $applicationMock = $this->getMockBuilder('SomeClass') +- ->disableOriginalConstructor() +- ->getMock(); ++ $applicationMock = $this->createMock('SomeClass'); + } + } +``` + +
+ ### `GetMockRector` - class: `Rector\PHPUnit\Rector\GetMockRector` @@ -4582,6 +4603,28 @@ Data provider methods cannot start with "test" prefix
+### `RemoveEmptyTestMethodRector` + +- class: `Rector\PHPUnit\Rector\ClassMethod\RemoveEmptyTestMethodRector` + +Remove empty test methods + +```diff + class SomeTest extends \PHPUnit\Framework\TestCase + { +- /** +- * testGetTranslatedModelField method +- * +- * @return void +- */ +- public function testGetTranslatedModelField() +- { +- } + } +``` + +
+ ### `RemoveExpectAnyFromMockRector` - class: `Rector\PHPUnit\Rector\MethodCall\RemoveExpectAnyFromMockRector` diff --git a/packages/PHPUnit/src/Rector/ClassMethod/RemoveEmptyTestMethodRector.php b/packages/PHPUnit/src/Rector/ClassMethod/RemoveEmptyTestMethodRector.php new file mode 100644 index 000000000000..30b0b58de2d9 --- /dev/null +++ b/packages/PHPUnit/src/Rector/ClassMethod/RemoveEmptyTestMethodRector.php @@ -0,0 +1,71 @@ +isInTestClass($node)) { + return null; + } + + if (! $this->isName($node->name, 'test*')) { + return null; + } + + $this->removeNode($node); + + return null; + } +} diff --git a/packages/PHPUnit/tests/Rector/ClassMethod/RemoveEmptyTestMethodRector/Fixture/fixture.php.inc b/packages/PHPUnit/tests/Rector/ClassMethod/RemoveEmptyTestMethodRector/Fixture/fixture.php.inc new file mode 100644 index 000000000000..dd5f3fc12911 --- /dev/null +++ b/packages/PHPUnit/tests/Rector/ClassMethod/RemoveEmptyTestMethodRector/Fixture/fixture.php.inc @@ -0,0 +1,27 @@ + +----- + diff --git a/packages/PHPUnit/tests/Rector/ClassMethod/RemoveEmptyTestMethodRector/RemoveEmptyTestMethodRectorTest.php b/packages/PHPUnit/tests/Rector/ClassMethod/RemoveEmptyTestMethodRector/RemoveEmptyTestMethodRectorTest.php new file mode 100644 index 000000000000..d807293e60c9 --- /dev/null +++ b/packages/PHPUnit/tests/Rector/ClassMethod/RemoveEmptyTestMethodRector/RemoveEmptyTestMethodRectorTest.php @@ -0,0 +1,30 @@ +doTestFile($file); + } + + public function provideDataForTest(): Iterator + { + return $this->yieldFilesFromDirectory(__DIR__ . '/Fixture'); + } + + protected function getRectorClass(): string + { + return RemoveEmptyTestMethodRector::class; + } +}