Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Mengejek dan Ref Parameter dengan Moq?

Bagaimana Saya Boleh Mengejek dan Ref Parameter dengan Moq?

Linda Hamilton
Linda Hamiltonasal
2025-01-18 05:37:15252semak imbas

How Can I Mock Out and Ref Parameters with Moq?

Mengendalikan parameter Keluar/Rujuk dalam Moq

Moq ialah rangka kerja ujian unit popular yang menyediakan keupayaan simulasi yang berkuasa. Walau bagaimanapun, masih terdapat beberapa soalan tentang sokongannya untuk menetapkan parameter keluar/ref. Artikel ini meneroka kebolehlaksanaan ciri ini dan menyediakan penyelesaian jika berkenaan.

Parameter 'Keluar'

Moq membenarkan parameter diberikan nilai melalui teknik mudah. Contohnya adalah seperti berikut:

<code>public interface IService
{
    void DoSomething(out string a);
}

[TestMethod]
public void Test_OutParam()
{
    var service = new Mock<IService>();
    string expectedValue = "value";
    service.Setup(s => s.DoSomething(out expectedValue));

    string actualValue;
    service.Object.DoSomething(out actualValue);
    Assert.AreEqual(expectedValue, actualValue);
}</code>

Dalam senario ini, Moq menangkap nilai expectedValue apabila Persediaan dipanggil. Apabila kaedah olok-olok dilaksanakan, ia akan mengembalikan nilai ini.

Parameter 'Rujuk'

Malangnya, Moq tidak menyokong parameter rujukan pada masa ini. Penyelesaian untuk parameter keluar tidak boleh digunakan secara langsung di sini. Walau bagaimanapun, anda boleh menggunakan kaedah Panggilan Balik untuk mencapai tingkah laku yang serupa. Walau bagaimanapun, Tindakan tidak menyokong parameter rujukan.

Dokumentasi Moq menyediakan panduan permulaan pantas yang berguna dengan cerapan tentang pelbagai aspek rangka kerja: https://www.php.cn/link/a77054e9d6c3fb75907aed15140ca1e6

Atas ialah kandungan terperinci Bagaimana Saya Boleh Mengejek dan Ref Parameter dengan Moq?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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