This package is deprecated. Please use Ray.TestDouble instead.
$ composer require ray/fake-module
use Ray\Di\AbstractModule;
use Ray\FakeModule\FakeModule;
class AppModule extends AbstractModule
{
protected function configure()
{
$this->install(new FakeModule);
}
}@FakeResource annotation fake uri for building mock feature.
Annotate target resource, which you want to fake, with @FakeResource annotation. Then, 'Fake' prefixed resource in same namespace will be called via interceptor when original resource method called.
this feature heavily depends on BEAR.Resource [https://github.com/bearsunday/BEAR.Resource]
Real resource
namespace FakeVendor\Sandbox\Resource\App;
use BEAR\Resource\ResourceObject;
use Ray\FakeModule\Annotation\FakeResource;
/**
* @FakeResource
*/
class User extends ResourceObject
{
public function onGet($id)
{
// ...
}
}Fake resource
namespace FakeVendor\Sandbox\Resource\App;
use BEAR\Resource\ResourceObject;
class FakeUser extends ResourceObject
{
public function onGet($id)
{
// ...
}
}@FakeClass annotation work as same as @FakeResource.
Real class.
namespace FakeVendor\Sandbox\Module;
use Ray\FakeModule\Annotation\FakeClass;
/**
* @FakeClass
*/
class TestClass
{
public function output() {
return "test class output";
}
}Fake class.
namespace FakeVendor\Sandbox\Module;
class FakeTestClass
{
public function output() {
return "fake class output";
}
}- PHP 5.5+
- hhvm
