Skip to content

hairmare/mockery

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Mockery is a Cross Framework Mock Object and Stub Framework for PHP5, currently
released as an alpha version for interested developers to assist in offering
feedback. It is not yet fully functional, and stability is a relative term :).

Requirements:

PHP: 5.2.4, probably less but I haven't checked

Installation (Manual Installation without PEAR):

1. Copy the contents of /library to a location on the PHP include_path, e.g.
   /usr/share/php.

Yeah, that's pretty much it :).

Usage:

Mockery defines two functions called mockery() and mockery_verify() which are a shorter
means to call Mockery::mock() and Mockery::verify() which are both static methods. A simple
use case is as follows:

require_once 'Mockery/Framework.php';

class Addition {

    protected $math = null;

    public function __construct(Math $math) {
        $this->math = $math;
    }

    public function add($op1, $op2) {
        return $this->math->add($op1, $op2);
    }

}

class Math {

    public function add($a, $b) {
        return $a + $b;
    }

}

class AdditionTest extends PHPUnit_Framework_TestCase {

    public function testAdd() {
        $math = mockery('Math');
        $addition = new Addition($math);

        // set Mock expectations!
        $math->shouldReceive('add')->once()->with(1, 1)->andReturn(2);
        // perform the action!
        $result = $addition->add(1, 1);

        // Verify?
        mockery_verify();

        // Proceed to assertions (if any) as normal
        $this->assertEqual(2, $result);
    }

    public function testAddWithFailingMock() {
        $math = mockery('Math');
        $addition = new Addition($math);

        // set Mock expectations!
        // twice() is obviously wrong
        $math->shouldReceive('add')->twice()->with(1, 1)->andReturn(2);
        // perform the action!
        $result = $addition->add(1, 1);

        // Verify?
        mockery_verify();

        // Proceed to assertions (if any) as normal
        $this->assertEqual(2, $result);
    }

}

PHPUnit reports:

PHPUnit 3.3.14 by Sebastian Bergmann.

.E

Time: 0 seconds

There was 1 error:

1) testAddWithFailingMock(AdditionTest)
Mockery_ExpectationException: method add called incorrect number of times;
expected call 2 times but received 1

A vastly more detailed introduction including brief API documentation is available on my blog:
http://blog.astrumfutura.com/archives/392-The-Mockery-An-Independent-Mock-Object-and-Stub-Framework-for-PHP5.html

About

Cross framework Mock Object and Stub support for PHP5

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%