Unexpected errors with `willReturn` called on `with`

Open
#299 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
php
Domain
testing

Research direction

Reproduce the reported diagnostic using the shown PHPUnit mock chain and the listed PHPStan and PHPUnit versions. Inspect the PHPStan PHPUnit extension's handling of with() and willReturn(); done means the chain no longer reports InvocationStubber::with() as undefined while unrelated invalid calls remain detectable.

Written by the indexing model from the issue text.

Description

After upgrading to PHPStan 2.2.0 the willReturn on the with seems not longer be detected correctly:

use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Symfony\Component\DependencyInjection\ContainerBuilder;

class RegisterPreviewWebspaceClassPassTest extends TestCase
{
    /** @var ContainerBuilder&MockObject */
    private $containerBuilderMock;

    public function testShouldNotOverrideWebspaceCacheClass(): void
    {
        $this->containerBuilderMock
            ->method('hasExtension')
            ->with('sulu_core')
            ->willReturn(false);
    }
  28     Call to an undefined method PHPUnit\Framework\MockObject\InvocationStubber::with().
         🪪  method.notFound

Packages which are installed related to PHPUnit:

phpspec/prophecy-phpunit                         2.5.0   Integrating the Prophecy mocking library in PHPUnit test cases
phpstan/phpstan-phpunit                          2.0.16  PHPUnit extensions and rules for PHPStan
phpunit/php-code-coverage                        14.1.9  Library that provides collection, processing, and rendering functionality for PHP code covera...
phpunit/php-file-iterator                        7.0.0   FilterIterator implementation that filters files based on a list of suffixes.
phpunit/php-invoker                              7.0.0   Invoke callables with a timeout
phpunit/php-text-template                        6.0.0   Simple template engine.
phpunit/php-timer                                9.0.0   Utility class for timing
phpunit/phpunit                                  13.1.13 The PHP Unit Testing framework.
symfony/phpunit-bridge                           7.4.8   Provides utilities for PHPUnit, especially user deprecation notices management
Dominant language
PHP
Stars
544
Forks
58
Avg merge
2d 1h
Merged PRs (30d)
5

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from phpstan/phpstan-phpunit

All issues in phpstan/phpstan-phpunit

Similar issues

More PHP issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.