PHP code example of bberkaysari / laravel-test-generator
1. Go to this page and download the library: Download bberkaysari/laravel-test-generator 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/ */
bberkaysari / laravel-test-generator example snippets
use Bberkaysari\LaravelTestGenerator\Core\ProjectAnalyzer;
use Bberkaysari\LaravelTestGenerator\Generator\Generators\ModelTestGenerator;
use Bberkaysari\LaravelTestGenerator\Generator\Generators\ControllerTestGenerator;
// Analyze entire project
$analyzer = new ProjectAnalyzer('/path/to/laravel');
$results = $analyzer->analyze();
// Results contain:
// - models: Array of analyzed models
// - controllers: Array of analyzed controllers
// - migrations: Array of parsed migrations
// - statistics: Test estimates and metrics
// - performance: Execution time and memory
// Generate model tests
$modelGenerator = new ModelTestGenerator();
foreach ($results['models'] as $model) {
$testCode = $modelGenerator->generate($model);
file_put_contents("tests/Unit/{$model['name']}Test.php", $testCode);
}
// Generate controller tests
$controllerGenerator = new ControllerTestGenerator();
foreach ($results['controllers'] as $controller) {
$testCode = $controllerGenerator->generate($controller);
file_put_contents("tests/Feature/{$controller['name']}Test.php", $testCode);
}
✓ test_index // GET /users returns 200
✓ test_store // POST /users creates user
✓ test_store_validation // POST /users validation fails
✓ test_show // GET /users/{id} returns user
✓ test_update // PUT /users/{id} updates user
✓ test_update_validation // PUT /users/{id} validation fails
✓ test_destroy // DELETE /users/{id} removes user
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
use App\Models\User;
/**
* @covers \App\Http\Controllers\UserController
*/
class UserControllerTest extends TestCase
{
use RefreshDatabase;
public function test_index(): void
{
$response = $this->get('users');
$response->assertStatus(200);
}
public function test_store(): void
{
$data = [
'name' => 'Test Name',
'email' => '[email protected]',
];
$response = $this->post('users', $data);
$response->assertStatus(201);
$this->assertDatabaseHas('users', [
'email' => '[email protected]',
]);
}
public function test_store_validation(): void
{
$response = $this->post('users', []);
$response->assertStatus(422);
$response->assertJsonValidationErrors(['name', 'email']);
}
}