Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Mock PHP built-in functions with Prophecy

This package integrates the function mock library PHP-Mock with Prophecy.

Installation

Use Composer:

composer require --dev php-mock/php-mock-prophecy

Usage

Build a new PHPProphet and create function prophecies for a given namespace with PHPProphet::prophesize():

namespace foo;

use phpmock\prophecy\PHPProphet;

$prophet = new PHPProphet();

$prophecy = $prophet->prophesize(__NAMESPACE__);
$prophecy->time()->willReturn(123);
$prophecy->reveal();

assert(123 == time());
$prophet->checkPredictions();

Restrictions

This library comes with the same restrictions as the underlying php-mock:

  • Only unqualified function calls in a namespace context can be prophesized. E.g. a call for time() in the namespace foo is prophesizable, a call for \time() is not.

  • The mock has to be defined before the first call to the unqualified function in the tested class. This is documented in Bug #68541. In most cases you can ignore this restriction. But if you happen to run into this issue you can call PHPProphet::define() before that first call. This would define a side effectless namespaced function.

  • Additionally it shares restrictions from Prophecy as well: Prophecy doesn't support pass-by-reference. If you need pass-by-reference in prophecies, consider using another framework (e.g. php-mock-phpunit).

License and authors

This project is free and under the WTFPL. Responsable for this project is Markus Malkusch markus@malkusch.de.

Donations

If you like this project and feel generous donate a few Bitcoins here: 1335STSwu9hST4vcMRppEPgENMHD2r1REK

Build Status

About

Mock built-in PHP functions (e.g. time()) with Prophecy (phpspec).

Topics

Resources

License

Sponsor this project

 

Packages

No packages published

Languages

You can’t perform that action at this time.