PHP code example of netrivet / ezekiel
1. Go to this page and download the library: Download netrivet/ezekiel library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
netrivet / ezekiel example snippets
$prophecy = $this->prophesize('SomeClass');
$prophecy->someMethod()->willReturn(false);
$stub = $prophecy->reveal();
$stub = $this->stub('SomeClass', ['someMethod' => false]);
// stub a single method
$foo = $this->stub('Foo', ['someMethod' => false]);
// stub multiple methods
$bar = $this->stub('Bar', [
'someMethod' => false,
'otherMethod' => true,
'jimJam' => 'some text'
]);
$stub = $this->stub('Foo', ['bar' => '~firstArg']);
$stub->bar('baz'); // returns 'baz'
$stub = $this->stub('Foo', ['bar' => '~arg=3']);
$stub->bar('baz', 'foo', 'herp'); // returns 'herp'
$stub = $this->stub('Foo', ['bar' => '~self']);
$stub->bar(); // returns $stub
$stub = $this->stub('Foo', ['bar' => '@myProp']);
$this->myProp = true;
$stub->bar(); // returns true
$this->myProp = false;
$stub->bar(); // returns false
$stub = $this->stub('Foo', ['bar' => '~firstArg -> strtoupper']);
$stub->bar('baz'); // returns 'BAZ'
$stub = $this->stub('Foo', ['bar' => '~arg=2 -> strtoupper']);
$stub->bar('foo', 'bar'); // returns 'BAR'
$stub = $this->stub('Foo', ['bar' => '~joinArgs|*']);
$stub->bar('baz', 'herp', 'derp'); // returns 'baz*herp*derp'
$stub = $this->stub('Foo', ['bar' => function($str) {
return $this->someProp . ' ' . strtoupper($str) . '!';
}]);
$this->someProp = 'Hello';
$stub->bar('world'); // returns 'Hello WORLD!'
$this->someProp = 'Howdy';
$stub->bar('friends'); // returns 'Howdy FRIENDS!'
$stub = $this->stub('Foo', ['bar' => '@someProp']);
$this->someProp = function($arg1) {
return $arg1 === 'foo' ? 'bar' : 'baz';
};
$stub->bar('foo'); // returns 'bar'
$stub->bar('qux'); // returns 'baz'
$stub = $this->stub('Foo', ['bar' => [
['with' => ['jim'], 'return' => 'jam'],
['with' => ['herp'], 'return' => 'derp'],
]]);
$stub->bar('jim'); // returns 'jam'
$stub->bar('herp'); // returns 'derp'
$stub = $this->stub('Foo', ['bar' => [
['with' => ['herp', 'derp'], 'return' => 'slurp'],
['with' => ['herp', '*'], 'return' => false],
]]);
$stub->bar('herp', 'derp'); // returns 'slurp'
$stub->bar('herp', 'foo'); // returns false
$stub = $this->stub('Foo', ['bar' => [
['with' => ['herp'], 'return' => 'derp'],
['with' => '*', 'return' => 'my default value'],
]]);
$stub->bar('herp'); // returns 'derp'
$stub->bar('foo'); // returns 'my default value'
$stub->bar('bar'); // returns 'my default value'
$stub = $this->stub('Foo', ['bar' => [
['expect' => ['jim'], 'return' => 'jam'],
]]);
// returns 'jam' and adds to assertion count
// if not invoked with expected args, produces PHPUnit failure
$stub->bar('jim');
$stub = $this->stub('Foo', ['bar' => [
['expect' => ['jim'], 'return' => 'jam', 'times' => 1],
]]);
// causes PHPUnit failure because invoked too many times
$stub->bar('jim');
$stub->bar('jim');
$stub = $this->stub('Foo', ['bar' => [
['expect' => ['jim', '*'], 'return' => 'jam', 'times' => 1],
]]);
// causes PHPUnit pass because we wild-carded the second arg
$stub->bar('jim', 'jam');
$stub = $this->stub('Foo', ['bar' => [
['expect' => ['foobar'], 'return' => 'hashbaz'],
['expect' => ['jim', '*'], 'return' => 'jam', 'times' => 1],
['expect' => ['herp', 1], 'return' => [1, 2, 3]],
]]);
$stub = $this->stub('Foo', ['bar' => '~neverCalled']);
// causes PHPUnit failure
$stub->bar();
$prophecy->someMethod()->shouldHaveBeenCalled();
$stub = $this->stub('SomeClass', ['someMethod' => false]);
$stub->someMethod('foo', 'bar');
// returns array of all recorded invocations => [['foo', 'bar']];
$this->calls($stub, 'someMethod');
// returns arguments for first method invocation => ['foo', 'bar'];
$this->calls($stub, 'someMethod', $invocationIndex = 0);
// returns first argument for first method invocation => 'foo';
$this->calls($stub, 'someMethod', $invocationIndex = 0, $argumentIndex = 0);
$stub = $this->stub('SomeClass', ['someMethod' => false]);
$stub->someMethod(1);
$stub->someMethod(false);
$stub->someMethod('foo');
$this->calls($stub, 'someMethod', '~last'); // returns ['foo'];
$this->calls($stub, 'someMethod', '~last', 0); // returns 'foo';
protected transformClass($class) {
return 'Acme\Foo\Bar\' . $class;
}
$stub1 = $this->stub('SomeClass', ['foo' => 'blah blah']);
$stub2 = $this->stub('SomeClass', ['foo' => 'blah blah']);
$this->assertSame($stub1, $stub2); // true
namespace Acme\Foo;
class FooTest extends \PHPUnit_Framework_Testcase {
use \DownShift\Ezekiel\Ezekiel;
}
namespace Acme;
class AcmeTestCase extends \PHPUnit_Framework_Testcase {
use \DownShift\Ezekiel\Ezekiel;
}