sofiDev img

Irnovi

Laravel:Apa Saja Yang Perlu ditest - Part 1

Dalam mengembangkan aplikasi dengan pendekatan Test-Driven Development (TDD), ada berbagai aspek yang perlu diuji untuk memastikan aplikasi berfungsi dengan baik dan memenuhi persyaratan yang telah ditentukan. Berikut adalah beberapa hal penting yang perlu diuji dalam konteks pengembangan aplikasi Laravel:

1. Pengujian Unit (Unit Testing)

Pengujian unit berfokus pada pengujian bagian terkecil dari aplikasi, biasanya fungsi atau metode individu. Dalam Laravel, pengujian unit dapat dilakukan dengan PHPUnit atau Pest.

Contoh:

// tests/Unit/ExampleTest.php

it('adds two numbers correctly', function () {
    expect(1 + 1)->toBe(2);
});

2. Pengujian Fitur (Feature Testing)

Pengujian fitur berfokus pada pengujian skenario pengguna yang lebih besar dan lebih kompleks, seperti interaksi antara beberapa komponen.

Contoh:

// tests/Feature/ArticleTest.php

it('allows a user to create an article', function () {
    $response = $this->post('/articles', [
        'title' => 'Test Article',
        'content' => 'Test Content'
    ]);

    $response->assertStatus(201);
    $this->assertDatabaseHas('articles', [
        'title' => 'Test Article',
        'content' => 'Test Content'
    ]);
});

3. Pengujian Database

Pengujian ini memastikan bahwa interaksi dengan database berfungsi dengan benar.

Contoh:

// tests/Feature/DatabaseTest.php

it('has articles table', function () {
    $this->assertTrue(
        Schema::hasTable('articles')
    );
});

4. Pengujian API

Pengujian ini memastikan bahwa API berfungsi dengan benar dan mengembalikan respons yang diharapkan.

Contoh:

// tests/Feature/ApiTest.php

it('retrieves articles as JSON', function () {
    $response = $this->getJson('/api/articles');

    $response->assertStatus(200)
             ->assertJsonStructure([
                 '*' => ['id', 'title', 'content', 'created_at', 'updated_at']
             ]);
});

5. Pengujian Middleware

Pengujian ini memastikan bahwa middleware berfungsi dengan benar dan mengelola request/response sesuai dengan yang diharapkan.

Contoh:

// tests/Feature/MiddlewareTest.php

it('denies access to unauthenticated users', function () {
    $response = $this->get('/protected-route');

    $response->assertRedirect('/login');
});

6. Pengujian Validasi

Pengujian ini memastikan bahwa validasi input bekerja dengan benar, baik untuk input yang valid maupun yang tidak valid.

Contoh:

// tests/Feature/ValidationTest.php

it('validates article input', function () {
    $response = $this->post('/articles', [
        'title' => '',
        'content' => 'Test Content'
    ]);

    $response->assertSessionHasErrors(['title']);
});

Kesimpulan

Dengan melakukan berbagai jenis pengujian ini, Anda dapat memastikan bahwa aplikasi Laravel Anda berfungsi dengan benar dan memenuhi persyaratan yang diharapkan. TDD membantu memandu proses pengembangan dan memastikan bahwa setiap bagian dari aplikasi diuji dengan baik sebelum diintegrasikan ke dalam kode produksi.