Maison >développement back-end >C++ >Comment simuler et référencer des paramètres avec Moq ?

Comment simuler et référencer des paramètres avec Moq ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-18 05:26:09602parcourir

How to Mock Out and Ref Parameters with Moq?

Moq : Paramètres de gestion et de référence

La simulation et les paramètres de référence avec Moq présentent des défis uniques en raison de la nature générique de Action<T>. Voyons comment résoudre ce problème.

Pour les paramètres out, Moq fournit une solution directe. La configuration reflète l'appel de méthode, capturant la valeur de sortie :

<code class="language-csharp">public interface IService
{
    void DoSomething(out string a);
}

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

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

Moq capture efficacement expectedValue lors de la configuration et l'utilise lorsque la méthode simulée est appelée.

Malheureusement, Moq n'offre pas de solution tout aussi élégante pour les paramètres ref. Le guide Moq QuickStart (https://www.php.cn/link/a77054e9d6c3fb75907aed15140ca1e6) fournit des conseils plus complets sur les scénarios d'utilisation avancés, y compris des approches alternatives pour la gestion des paramètres de référence pouvant impliquer l'utilisation de rappels ou de correspondances personnalisées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn