Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Lulus Parameter Kompleks kepada Ujian Unit Didorong Teori dalam xUnit?

Bagaimana untuk Lulus Parameter Kompleks kepada Ujian Unit Didorong Teori dalam xUnit?

Barbara Streisand
Lepaskan: 2025-01-02 21:24:41
asal
1001 orang telah melayarinya

How to Pass Complex Parameters to Theory-Driven Unit Tests in xUnit?

Meluluskan Parameter Kompleks kepada Ujian Unit Didorong Teori

Rangka kerja ujian unit seperti xUnit menawarkan ciri yang mudah untuk ujian dipacu data. Walau bagaimanapun, apabila parameter kepada kaedah yang diuji ialah struktur data yang kompleks, seperti senarai kelas tersuai, atribut InlineData menjadi pendek.

Teori Parameter Kompleks

Untuk menangani cabaran ini, xUnit menyediakan beberapa pilihan untuk menghantar parameter kompleks kepada ujian unit dipacu teori. Satu pilihan sedemikian ialah atribut MemberData.

MemberData to the Rescue

Atribut MemberData membolehkan anda menentukan sifat atau kaedah yang mengembalikan IEnumerable. Setiap tatasusunan objek dalam jujukan ini mewakili parameter untuk setiap contoh ujian. Contohnya:

[Theory, MemberData(nameof(MyCustomData))]
public void WriteReportsToMemoryStream(...)
{
    // ...
}

public static IEnumerable<object[]> MyCustomData()
{
    // ...
}
Salin selepas log masuk

ClassData: Pendekatan Alternatif

Sebelum xUnit 2.0, alternatif lain wujud: ClassData. Sama seperti MemberData, ClassData membenarkan perkongsian penjana data antara ujian dalam kelas dan ruang nama yang berbeza. Contohnya:

public class MyCustomTests
{
    [Theory, ClassData(typeof(MyCustomData))]
    public void WriteReportsToMemoryStream(...)
    {
        // ...
    }
}

public class MyCustomData : IEnumerable<object[]>
{
    // ...
}
Salin selepas log masuk

MemberData dengan Static Member Overloading (xUnit >= 2.0)

xUnit 2.0 memperkenalkan versi terlebih muatan MemberData yang membolehkan penggunaan terus ahli statik dari kelas lain. Contoh ClassData di atas boleh ditulis semula menggunakan lebihan ini:

[Theory, MemberData(nameof(MyCustomData.GetData), MemberType = typeof(MyCustomData))]
public void WriteReportsToMemoryStream(...)
{
    // ...
}
Salin selepas log masuk

Kesimpulan

Contoh ini menggambarkan pelbagai cara untuk menghantar parameter kompleks kepada ujian unit dipacu teori dalam xUnit menggunakan MemberData, ClassData, dan kelebihan beban masing-masing. Dengan memanfaatkan atribut ini, pembangun boleh menjana data dengan mudah untuk kaedah ujian yang beroperasi pada struktur data yang kompleks.

Atas ialah kandungan terperinci Bagaimana untuk Lulus Parameter Kompleks kepada Ujian Unit Didorong Teori dalam xUnit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan