Problem/Motivation

PHPUnit 12.5.0+ is changing the way that mock objects work:

  • Mock objects that do not configure expectations should be converted to stubs. Otherwise, they throw a notice: No expectations were configured for the mock object for \Drupal\comment\CommentManagerInterface. You should refactor your test code and use a test stub instead.
  • $this->any() is deprecated. It was equivalent to having no expectation, in which case the object should be a stub (see the previous bullet) or a more exact number of expectations should be added.
  • with() is deprecated for stubs because it was deemed to be equally pointless.

Steps to reproduce

  1. Require PHPUnit 12 with Composer.
  2. Fix compatibility issues with PHPUnit 12 by applying this patch.
  3. Run the Unit tests for a library with --display-phpunit-notices --display-phpunit-deprecations.
  4. Observe the PHPUnit notices that occur.

Proposed resolution

Fix notices in core/tests/Drupal/Tests/Core/Menu. There are plenty of notices to fix in the standalone tests, but the impact of this reaches farther because of LocalTaskIntegrationTestBase. Many of the Core modules extend this base class. It's responsible for a lot of the remaining module notices, which is the reason why these tests are the first group from the Core libraries to be fixed.

Remaining tasks

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet

Issue fork drupal-3579136

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

dcam created an issue. See original summary.

dcam’s picture

Status: Active » Needs review
smustgrave’s picture

Status: Needs review » Reviewed & tested by the community

Following the steps of downloading phpunit12 and applying the one patch with the MR I get OK (93 tests, 416 assertions) all notices are gone.

catch’s picture

Status: Reviewed & tested by the community » Fixed

Looks good to me. Thanks for doing the self-review comments on the MRs, makes it much easier to commit vs. staring at the slightly trickier changes.

Committed/pushed to main, thanks!

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

  • catch committed 960916d1 on main
    task: #3579136 Convert expectation-less test mocks to stubs - Menu...

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.