Gunakan Moq untuk mengejek kaedah sambungan
Dalam dunia ujian unit, ejekan memainkan peranan penting dalam mengasingkan kebergantungan dan memastikan kestabilan ujian. Walau bagaimanapun, apabila berurusan dengan kaedah lanjutan, teknik simulasi tradisional nampaknya gagal.
Moq, rangka kerja mengejek yang popular, tidak secara langsung menyokong kaedah statik mengejek, yang merupakan asas kaedah sambungan. Ralat "Jangkaan tidak sah pada ahli yang tidak boleh diganti" dengan tepat meringkaskan pengehadan ini.
Pertimbangkan contoh berikut:
<code class="language-c#">public class SomeType { public int Id { get; set; } } var ListMock = new Mock<List<SomeType>>(); ListMock.Setup(l => l.FirstOrDefault(st => st.Id == 5)) .Returns(new SomeType { Id = 5 });</code>
Ujian ini akan gagal kerana Moq tidak boleh mengatasi kaedah statik FirstOrDefault bagi kelas List
Beberapa alternatif telah dicadangkan:
Walau bagaimanapun, kaedah ini memperkenalkan kerumitan tambahan dan mungkin tidak praktikal dalam sesetengah kes. Oleh itu, pastikan anda mempertimbangkan kesesuaian kaedah sambungan olok-olok dalam strategi ujian anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengejek Kaedah Sambungan dengan Moq dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!