Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengejek Kaedah Sambungan dengan Berkesan dengan Moq?
Kaedah sambungan mengejek menggunakan Moq: alternatif
Apabila menguji kod yang bergantung pada kaedah sambungan, adalah penting untuk mengekalkan kestabilan ujian terhadap kemungkinan kegagalan masa depan kaedah ini. Walaupun kefungsian Moq tidak meluas secara langsung kepada kaedah statik mengatasi, penyelesaian wujud.
Kaedah alternatif
Kaedah sambungan adalah kaedah statik dan tidak boleh disimulasikan secara langsung oleh Moq. Sebaliknya, anda boleh mengasingkan pelaksanaan kaedah lanjutan dengan memanfaatkan kelas konkrit dan kaedah statiknya.
Pertimbangkan contoh berikut:
<code class="language-c#">public static class ExtensionClass { public static int GetValue(this SomeType obj) => obj.Id; } public class SomeType { public int Id { get; set; } }</code>
Pelaksanaan ujian
Untuk membuat olok-olok yang tidak memanggil kaedah sambungan, rujuk kelas statik secara langsung:
<code class="language-c#">var concreteClassMock = new Mock<ExtensionClass>(); concreteClassMock.Setup(c => c.GetValue(It.IsAny<SomeType>())).Returns(5);</code>
Dengan menyasarkan kaedah statik kelas konkrit, anda boleh mensimulasikan gelagat kaedah sambungan dengan berkesan tanpa bergantung secara langsung pada kaedah sambungan itu sendiri. Ini memastikan bahawa kegagalan ujian timbul hanya daripada kelas yang diuji dan bukan daripada kemungkinan kegagalan masa depan kaedah sambungan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengejek Kaedah Sambungan dengan Berkesan dengan Moq?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!