weirdan/prophecy-shim

Compatibility shim to be able to use ProphecyTrait with older PHPUnit versions

Maintainers

👁 weirdan

Package info

github.com/weirdan/prophecy-shim

pkg:composer/weirdan/prophecy-shim

Statistics

Installs: 243 709

Dependents: 12

Suggesters: 0

Stars: 1

Open Issues: 0

2.0.2 2020-08-24 21:34 UTC

Requires

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 385837ffb01e3fae638ad6187bda817953dbad24

  • Bruce Weirdan <weirdan.woop@gmail.com>

This package is auto-updated.

Last update: 2026-06-11 04:34:26 UTC


README

Compatibility shim to be able to use ProphecyTrait with older PHPUnit versions.

Motivation

Starting with PHPUnit 9.1 Prophecy integration that used to be provided by PHPUnit itself is deprecated and is scheduled to be removed in PHPUnit 10. There is phpspec/prophecy-phpunit package providing the integration now, but what do you do if you need to run your tests with older PHPUnit versions like 7.x?

This package solves this by providing empty ProphecyTrait for those older versions that you can import into your tests. For PHPUnit 9.1+ it just requires phpspec/prophecy-phpunit that provides the same trait. As a result, you can import the trait into your tests and it will work regardless of the PHPUnit version.

Installation

composer require --dev weirdan/prophecy-shim:'^1.0 || ^2.0'

Usage

<?php

namespace Your\Tests;

use PHPUnit\Framework\TestCase;

// The following trait is provided either by the shim or by phpspec/prophecy-phpunit
use Prophecy\PhpUnit\ProphecyTrait;

class YourTest extends TestCase
{
 use ProphecyTrait;

 public function testSomething(): void
 {
 // this won't throw warnings anymore in PHPUnit 9.1+
 $objectProphecy = $this->prophesize(SomeClass::class);
 }
}