Skip to content

[CodeQuality] Add AddIntersectionVarToMockObjectPropertyRector#697

Merged
TomasVotruba merged 2 commits into
mainfrom
tv-mock-object-intersection-var
Jun 29, 2026
Merged

[CodeQuality] Add AddIntersectionVarToMockObjectPropertyRector#697
TomasVotruba merged 2 commits into
mainfrom
tv-mock-object-intersection-var

Conversation

@TomasVotruba

Copy link
Copy Markdown
Member

Adds new rule AddIntersectionVarToMockObjectPropertyRector.

For a native MockObject property assigned via createMock(X::class) in setUp(), adds a @var \PHPUnit\Framework\MockObject\MockObject&\X docblock so the property carries both the MockObject and the mocked class type.

 private \PHPUnit\Framework\MockObject\MockObject $someServiceMock;
+/**
+ * @var \PHPUnit\Framework\MockObject\MockObject&\SomeService
+ */
+private \PHPUnit\Framework\MockObject\MockObject $someServiceMock;

 protected function setUp(): void
 {
     $this->someServiceMock = $this->createMock(SomeService::class);
 }

Registered in phpunit-code-quality set. Overwrites any existing @var. Covered with tests (basic, overwrite-existing, skip non-MockObject type, skip non-test class).

@TomasVotruba TomasVotruba enabled auto-merge (squash) June 29, 2026 19:50
@TomasVotruba TomasVotruba merged commit e436bad into main Jun 29, 2026
8 checks passed
@TomasVotruba TomasVotruba deleted the tv-mock-object-intersection-var branch June 29, 2026 19:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant