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
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Build Status

HackMock

Creating mock objects for hacklang - yes, seriously.

Note

Due to the use of eval, hackmock may stop working in future hhvm versions.

What works?

  • Strict mode
  • Creating mocks of interfaces and concrete classes
  • Defining basic method expectations (parameter validation, return value definition)

What does not work?

  • Everything else, especially rare and/or untested cases involving generics, etc.
use function Usox\HackMock\{mock, prospect};

class SomethingTest extends \Usox\HackMock\HackMock {

  public function testSomething() {
    $my_fine_class = mock(SomeInterface::class);

    prospect($my_fine_class, 'someMethodName')
      ->once()
      ->andReturn('some-fine-value');

    prospect($my_fine_class, 'someOtherMethodName')
      ->andThrow(new \Exception('foobar'));
  }
}
You can’t perform that action at this time.