1. Go to this page and download the library: Download helgesverre/pest-to-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/ */
helgesverre / pest-to-phpunit example snippets
declare(strict_types=1);
use Rector\Config\RectorConfig;
use HelgeSverre\PestToPhpUnit\Set\PestToPhpUnitSetList;
return RectorConfig::configure()
->withSets([
PestToPhpUnitSetList::PEST_TO_PHPUNIT,
]);
declare(strict_types=1);
use Rector\Config\RectorConfig;
use HelgeSverre\PestToPhpUnit\Rector\PestFileToPhpUnitClassRector;
return RectorConfig::configure()
->withConfiguredRule(PestFileToPhpUnitClassRector::class, [
PestFileToPhpUnitClassRector::INFER_NAMESPACE => true,
]);
test('adds numbers', function () {
expect(1 + 1)->toBe(2);
});
it('subtracts numbers', function () {
expect(5 - 3)->toBe(2);
});
class BasicTest extends \PHPUnit\Framework\TestCase
{
public function test_adds_numbers(): void
{
$this->assertSame(2, 1 + 1);
}
public function test_it_subtracts_numbers(): void
{
$this->assertSame(2, 5 - 3);
}
}
// Before
describe('Auth', function () {
it('logs in', function () {
expect(true)->toBeTrue();
});
});
// After
class DescribeBlocksTest extends \PHPUnit\Framework\TestCase
{
public function test_it_auth_logs_in(): void
{
$this->assertTrue(true);
}
}
// Before
beforeEach(function () {
$this->user = new User();
});
afterEach(function () {
$this->user = null;
});
test('user exists', function () {
expect($this->user)->not->toBeNull();
});
// After
class HooksTest extends \PHPUnit\Framework\TestCase
{
protected $user;
protected function setUp(): void
{
parent::setUp();
$this->user = new User();
}
protected function tearDown(): void
{
parent::tearDown();
$this->user = null;
}
public function test_user_exists(): void
{
$this->assertNotNull($this->user);
}
}
// Before
uses(Tests\TestCase::class, RefreshDatabase::class);
test('database works', function () {
expect(true)->toBeTrue();
});
// After
class UsesTraitsTest extends \Tests\TestCase
{
use RefreshDatabase;
public function test_database_works(): void
{
$this->assertTrue(true);
}
}
// Before
test('skipped test', function () {
expect(true)->toBeTrue();
})->skip('Not ready yet');
test('todo test', function () {
})->todo();
test('throws exception', function () {
throw new RuntimeException('fail');
})->throws(RuntimeException::class, 'fail');
test('grouped test', function () {
expect(true)->toBeTrue();
})->group('unit');
// After
class ModifiersTest extends \PHPUnit\Framework\TestCase
{
public function test_skipped_test(): void
{
$this->markTestSkipped('Not ready yet');
}
public function test_todo_test(): void
{
$this->markTestIncomplete('TODO');
}
public function test_throws_exception(): void
{
$this->expectException(RuntimeException::class);
$this->expectExceptionMessage('fail');
throw new RuntimeException('fail');
}
#[\PHPUnit\Framework\Attributes\Group('unit')]
public function test_grouped_test(): void
{
$this->assertTrue(true);
}
}
// Before
test('throws exception', function () {
expect(fn () => throw new RuntimeException('boom'))
->toThrow(RuntimeException::class, 'boom');
});
// After
class ToThrowTest extends \PHPUnit\Framework\TestCase
{
public function test_throws_exception(): void
{
$this->expectException(RuntimeException::class);
$this->expectExceptionMessage('boom');
(fn () => throw new RuntimeException('boom'))();
}
}
// Before
use function Pest\Faker\fake;
test('generates a name', function () {
$name = fake()->name;
expect($name)->toBeString();
});
test('with locale', function () {
$name = fake('pt_PT')->name;
expect($name)->toBeString();
});
// After
class FakerTest extends \PHPUnit\Framework\TestCase
{
public function test_generates_a_name(): void
{
$name = \Faker\Factory::create()->name;
$this->assertIsString($name);
}
public function test_with_locale(): void
{
$name = \Faker\Factory::create('pt_PT')->name;
$this->assertIsString($name);
}
}
// Before
dataset('emails', [
'[email protected]',
'[email protected]',
]);
test('validates email', function (string $email) {
expect($email)->toContain('@');
})->with('emails');
// After
class DatasetTest extends \PHPUnit\Framework\TestCase
{
public static function emails(): array
{
return [
'[email protected]',
'[email protected]',
];
}
#[\PHPUnit\Framework\Attributes\DataProvider('emails')]
public function test_validates_email(string $email): void
{
$this->assertContains('@', $email);
}
}
// Before
expect($this->get('/'))->assertOk()->assertSee('Welcome');
// After
$this->get('/')->assertOk()->assertSee('Welcome');
// Before
expect()->extend('toBeWithinRange', function (int $min, int $max) {
return $this->toBeGreaterThanOrEqual($min)
->toBeLessThanOrEqual($max);
});
test('value in range', function () {
expect(100)->toBeWithinRange(90, 110);
});
// After
class CustomExpectTest extends \PHPUnit\Framework\TestCase
{
public function test_value_in_range(): void
{
$this->assertGreaterThanOrEqual(90, 100);
$this->assertLessThanOrEqual(110, 100);
}
}
// Pest input code here
-----
// Expected PHPUnit output here
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.