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

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

Linda Hamilton
Libérer: 2025-01-18 05:37:15
original
247 Les gens l'ont consulté

How Can I Mock Out and Ref Parameters with Moq?

Gestion des paramètres Out/Ref dans Moq

Moq est un framework de tests unitaires populaire qui offre de puissantes capacités de simulation. Cependant, quelques questions subsistent quant à sa prise en charge de l'attribution des paramètres out/ref. Cet article explore la faisabilité de cette fonctionnalité et propose des solutions le cas échéant.

Paramètre 'Out'

Moq permet d'attribuer des valeurs aux paramètres grâce à des techniques simples. Un exemple est le suivant :

<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>
Copier après la connexion

Dans ce scénario, Moq capture la valeur de ExpectValue lorsque le programme d'installation est appelé. Lorsque la méthode simulée s'exécutera, elle renverra cette valeur.

Paramètre 'Ref'

Malheureusement, Moq ne prend actuellement pas en charge les paramètres de référence. La solution pour le paramètre out ne peut pas être directement appliquée ici. Toutefois, vous pouvez utiliser la méthode Callback pour obtenir un comportement similaire. Cependant, Action ne prend pas en charge les paramètres ref.

La documentation de Moq fournit un guide de démarrage rapide utile avec un aperçu de divers aspects du framework : https://www.php.cn/link/a77054e9d6c3fb75907aed15140ca1e6

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal