1. Go to this page and download the library: Download sellerlabs/injected 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/ */
sellerlabs / injected example snippets
class EmailService
{
public function email($address, $content)
{
// Send an email to $address with body $content
}
}
class UserController
{
private $service;
public function __construct(EmailService $service)
{
$this->service = $service;
}
public function signUp($emailAddress)
{
$this->service->email($emailAddress, 'Thanks for signing up!');
return $emailAddress;
}
}
use SellerLabs\Injected\InjectedTrait;
/**
* Class InjectedExample
*
* // 1. These are helpful annotations for IDEs and language tools
* @property MockInterface $service
* @method UserController make()
*
* @author Benjamin Kovach <[email protected]>
*/
class InjectedExample extends PHPUnit_Framework_TestCase
{
// 2. Use our trait
use InjectedTrait;
// 3. Provide the name of the class to test
protected $className = UserController::class;
public function testSignUp()
{
// 4. Make a controller with mocked dependencies
$controller = $this->make();
$address = '[email protected]';
// 5. We can access any mocked dependency of the class as a property
$this->service->shouldReceive('email')
->withArgs(
[
$address,
'Thanks for signing up!'
]
);
$result = $controller->signUp($address);
$this->assertEquals($address, $result);
}
}
public function __construct(EmailService $service)
{
$this->service = $service;
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.