PHP code example of rasuvaeff / understudy-phpunit
1. Go to this page and download the library: Download rasuvaeff/understudy-phpunit 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/ */
rasuvaeff / understudy-phpunit example snippets
use function Rasuvaeff\Understudy\expect;
use function Rasuvaeff\Understudy\when;
use PHPUnit\Framework\TestCase;
use Rasuvaeff\Understudy\PhpUnit\UnderstudyPHPUnitIntegration;
use Rasuvaeff\Understudy\Understudy;
final class CheckoutTest extends TestCase
{
use UnderstudyPHPUnitIntegration;
public function testChargesForTheCart(): void
{
$books = Understudy::for(BookRepositoryInterface::class);
expect(fn () => $books->find(7))->returns($expected = new Book(7));
$receipt = (new Checkout($books))->charge([7]);
self::assertSame($expected->price, $receipt->total);
}
}
abstract class ProjectTestCase extends TestCase
{
use UnderstudyPHPUnitIntegration;
protected function understudyStrictStubs(): bool
{
return true;
}
}
use Rasuvaeff\Understudy\PhpUnit\UnderstudyPHPUnitIntegration {
UnderstudyPHPUnitIntegration::assertPostConditions as understudyAssertPostConditions;
}
protected function assertPostConditions(): void
{
// your post-conditions ...
$this->understudyAssertPostConditions();
}
use function Rasuvaeff\Understudy\expect as expectCall;
use function Rasuvaeff\Understudy\verify as verifyCall;
use function Rasuvaeff\Understudy\when;
uses(UnderstudyPHPUnitIntegration::class)->in(__DIR__);
it('charges for the cart', function () {
$books = Understudy::for(BookRepositoryInterface::class);
expectCall(fn () => $books->find(7))->returns(new Book(7)); // one registration
(new Checkout($books))->charge([7]);
});
it('reads the call back afterwards', function () {
$books = Understudy::for(BookRepositoryInterface::class);
when(fn () => $books->find(7))->returns(new Book(7));
(new Checkout($books))->charge([7]);
verifyCall(fn () => $books->find(7)); // after the action
});
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.