Skip to content

Helper class to mock and redefine native PHP functions

Notifications You must be signed in to change notification settings

betterphp/php-native-mock

Repository files navigation

PHP Native Mock

Helper class to mock or redefine native PHP functions in unit tests. Works using the UOPZ module, developed and tested against the master branch.

Build Status

This is largely a wrapper around the uopz functions with some extra bits thrown in to make it a bit easier in tests. It basically relies on dark magic and, like all magic, should only be used very carefully. Creating weird behaviour in applications is very easy, for example

$this->redefineFunction('substr', function () {
    return 'Doge';
});

would have some very strange effects.

Most of the time when redefining a function sounds like a good idea - it's probably not, make sure there is no way a "normal" mocking approach won't work first.

Installation

The library can be included via composer

{
    "require-dev": {
        "betterphp/php-native-mock": "~1"
    }
}

Documentation

Jenkins publishes a phpdoc here

Testing

We use phpcs and phpunit for testing, run both before commiting anything

./vendor/bin/phpcs -p --standard=./ruleset.xml .
./vendor/bin/phpunit -c ./phpunit.xml

phpunit will do code coverage checking which requires xdebug, if it's not installed this will fail gracefully - not to worry.

A report of the test coverage is published here by Jenkins

About

Helper class to mock and redefine native PHP functions

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages