0Pricing
PHP Academy · Pelajaran

Penyedia Data untuk Uji Berparameter

Jalankan uji yang sama dengan banyak input menggunakan dataProvider.

Penyedia Data untuk Uji Berparameter adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Apa Itu Penyedia Data?

Penyedia data adalah metode yang mengembalikan sekumpulan masukan pengujian. PHPUnit memanggil metode pengujian sekali untuk setiap kumpulan data, sehingga Anda dapat menguji banyak kombinasi masukan tanpa mengulang kode.

Penyedia Data Dasar

Penyedia mengembalikan larik 2D. Setiap sublarik merupakan satu pemanggilan ke metode pengujian.

<?php
public static function additionProvider(): array
{
    return [
        "two positives" => [2, 3, 5],
        "negative"      => [-1, 1, 0],
        "zeros"         => [0, 0, 0],
    ];
}

Menghubungkan dengan Atribut (PHPUnit 10+)

Gunakan atribut #[DataProvider] untuk menghubungkan pengujian dengan penyedianya.

<?php
use PHPUnit\Framework\Attributes\DataProvider;

#[DataProvider("additionProvider")]
public function test_add(int $a, int $b, int $expected): void
{
    $this->assertSame($expected, (new Calculator())->add($a, $b));
}

Kumpulan Data Bernama

Gunakan kunci asosiatif dalam larik penyedia untuk memberi nama deskriptif pada setiap kumpulan data—nama ini akan muncul dalam keluaran pengujian.

<?php
public static function emailProvider(): array
{
    return [
        "valid email"      => ["user@example.com", true],
        "missing @"        => ["userexample.com",  false],
        "missing domain"   => ["user@",            false],
        "international"    => ["用户@例子.com",      true],
    ];
}

Mengembalikan Generator

Penyedia dapat mengembalikan Generator, bukan larik, untuk menghasilkan kumpulan data secara malas—berguna untuk kumpulan data yang sangat besar.

<?php
public static function largeProvider(): Generator
{
    for ($i = 1; $i <= 1000; $i++) {
        yield "case $i" => [$i, $i * 2];
    }
}

Sumber Data Eksternal

Muat data pengujian dari CSV, JSON, atau basis data di dalam metode penyedia untuk menjalankan pengujian dengan data dunia nyata.

<?php
public static function csvProvider(): array
{
    $rows = array_map("str_getcsv", file("tests/fixtures/data.csv"));
    return array_map(fn($r) => [$r[0], (int)$r[1], (int)$r[2]], $rows);
}

Beberapa Penyedia Data

Satu metode pengujian dapat merujuk ke beberapa penyedia dengan menumpuk atribut.

Penyedia Harus Bersifat Statis

Metode penyedia data harus dideklarasikan sebagai static karena PHPUnit memanggilnya sebelum membuat instans kelas pengujian.

Menguji Kasus Batas

Gunakan penyedia untuk mencakup secara sistematis: nol, bilangan negatif, string kosong, null, bilangan bulat maksimum—di mana pun kasus batas kemungkinan memunculkan kesalahan.

Keluaran Penyedia Data

Kegagalan menampilkan nama kumpulan data: CalculatorTest::test_add with data set "negative" ([-1, 1, 0])—sehingga Anda dapat dengan mudah menemukan kasus yang gagal.

Menggabungkan Penyedia dengan setUp

Penyedia data dan setUp dapat digabungkan. setUp berjalan sebelum setiap iterasi, sehingga setiap kumpulan data memperoleh objek baru untuk diuji.

Pertimbangan Performa

Penyedia dijalankan saat pemuatan rangkaian pengujian. Hindari operasi yang mahal (panggilan HTTP, kueri basis data) dalam penyedia—lebih baik gunakan pabrik dan perlengkapan pengujian.

Ringkasan

Penyedia data menghilangkan pengulangan pengujian. Gunakan kunci asosiatif untuk pesan kegagalan yang deskriptif. Tandai penyedia sebagai static dan hubungkan dengan atribut #[DataProvider].

Pemeriksaan Singkat

Pengubah visibilitas apa yang harus dimiliki penyedia data?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penyedia Data untuk Uji Berparameter” gratis?

Ya — teks lengkap “Penyedia Data untuk Uji Berparameter” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Penyedia Data untuk Uji Berparameter”?

Jalankan uji yang sama dengan banyak input menggunakan dataProvider. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Penyedia Data untuk Uji Berparameter” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Penyiapan PHPUnit dan Uji Pertama
  2. Assertion dan Method Uji
  3. Penyedia Data untuk Uji Berparameter
  4. Membuat Mock Dependensi dengan PHPUnit
← Kembali ke PHP Academy