2017 © Pedro Peláez
 

library invoke-private-methods

This is a class to aid in unit testing of private methods.

image

jimigrunge/invoke-private-methods

This is a class to aid in unit testing of private methods.

  • Wednesday, March 23, 2016
  • by jimigrunge
  • Repository
  • 1 Watchers
  • 1 Stars
  • 2,175 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 28 % Grown

The README.md

Invoke Private Methods

Latest Stable Version Build Status Coverage Status License Total Downloads This is a forkable respository, (*1)

This is a class to aid in unit testing of private methods. It can be used either as a stand alone class or as a trait and called either programmatically or statically., (*2)

Although testing of private methods is not recommended in most cases, sometimes it is necessary. Such as to insure correct calculations in a protected method aside form the methods that currently utilize it. Hence this repository., (*3)

Note: I mainly use PhpUnit for all testing so I make no guaranties when it comes to other testing utilities as I have not utilized them yet., (*4)

Installation

$ composer require jimigrunge/invoke-private-methods

Note on version requirements

If you are using a version of PHP less than 8.1 please use the 2.0 branch If you are using a version of PHP less than 7.1 please use the 1.0 branch, (*5)

$ composer require jimigrunge/invoke-private-methods:~1.0

Usage

class InvokePrivateMethod

This class can be used to test private and protected methods., (*6)

Once you include the class with the 'use' statement, you can utilize it on one of two ways. You can either create an instance of InvokePrivateMethod and call invokeMethod, as in testMyMethod(), or call invoke() statically as in testMyMethodStatically(), (*7)

<?php

// Include class to call private methods
use Jimigrunge\InvokePrivateMethods\InvokePrivateMethod;

class testclass extends \PHPUnit_Framework_TestCase
{
    /** @var InvokePrivateMethod */
    private $invoker;
    private $dummyObject;

    public function setUp()
    {
        // Instantiate the class
        $this->invoker = new InvokePrivateMethod();
        $this->dummyObject = new DummyClass();
    }

    public function testMyMethod()
    {
        // Call invoke method on private function
        $result = $this->invoker->invokeMethod($this->dummyObject, 'myPrivateFunction', ['param1']);
        $this->assertEquals('Test Success', trim($result));
    }

    public function testMyMethodStatically()
    {
        // Can also be used statically
        $result = InvokePrivateMethod::invoke($this->dummyObject, 'myPrivateFunction', ['param1']);
        $this->assertEquals('Test Success', trim($result));
    }
}

trait InvokePrivateMethodTrait

This trait can be used to add the functionality directly to you test class so that it can call it internally., (*8)

As with the full class usage, you can utilize it on one of two ways. You can either call $this->invokeMethod, as in testMyMethod(), or call self::invoke() statically as in testMyMethodStatically(), (*9)

<?php

// Include trait to call private methods
use Jimigrunge\InvokePrivateMethods\Traits\InvokePrivateMethodTrait;

class testclass extends \PHPUnit_Framework_TestCase
{
    use InvokePrivateMethodTrait;

    private $dummyObject;

    public function setUp()
    {
        $this->dummyObject = new DummyClass();
    }

    public function testMyMethod()
    {
        // Call invoke method on private function
        $result = $this->invokeMethod($this->dummyObject, 'myPrivateFunction', ['param1']);
        $this->assertEquals('Test Success', trim($result));
    }

    public function testMyMethodStatically()
    {
        // Can also be used statically
        $result = self::invoke($this->dummyObject, 'myPrivateFunction', ['param1']);
        $this->assertEquals('Test Success', trim($result));
    }
}

Further detail

More detailed usage examples can be found by studying the tests in the /tests directory., (*10)

Reporting an issue or a feature request

Issues and feature requests are tracked in the Github issue tracker., (*11)

TODO

Nothing at the moment, (*12)

Contributing

CONTRIBUTING.md, (*13)

License

The MIT License (MIT), (*14)

The Versions

23/03 2016

dev-master

9999999-dev

This is a class to aid in unit testing of private methods.

  Sources   Download

MIT

The Requires

  • php >=5.4 || ^7.0

 

The Development Requires

phpunit testing helper phpspec method private

23/03 2016

1.0.3

1.0.3.0

This is a class to aid in unit testing of private methods.

  Sources   Download

MIT

The Requires

  • php >=5.4 || ^7.0

 

The Development Requires

phpunit testing helper phpspec method private

07/03 2016

1.0.2

1.0.2.0

This is a class to aid in unit testing of private methods.

  Sources   Download

MIT

The Requires

  • php >=5.4 || ^7.0

 

The Development Requires

phpunit testing helper phpspec method private

07/03 2016

1.0.1

1.0.1.0

This is a class to aid in unit testing of private methods.

  Sources   Download

MIT

The Requires

  • php >=5.4 || ^7.0

 

The Development Requires

phpunit testing helper phpspec method private

04/03 2016

1.0

1.0.0.0

This is a class to aid in unit testing of private methods.

  Sources   Download

MIT

The Requires

  • php >=5.4 || ^7.0

 

The Development Requires

phpunit testing helper phpspec method private