À l'aide de Moq pour définir l'une par une clé et une valeur

À la fin de la question:
À l'aide de Moq pour définir les indexeurs en C#, il y a un problème que quelqu'un a mis en évidence un problème que je vais avoir ainsi. Mais ils n'ont pas à trouver une solution.

Plus précisément, je suis en train d'utiliser le générique It.IsAny<string> comme le matcher pour la clé et le réglage de la valeur par l'intermédiaire d' It.IsAny<object>. Lors de l'accès via un index et le réglage de la valeur, il n'a jamais matches et il n'a pas accès à mon retour d'appel de la méthode. Et donc, mes tests unitaires ne sont pas.

var stateTable = new HashTable;
var httpSession = new Mock<HttpSessionStateBase>();

//works via httpSession.Add(key, value);
httpSession.Setup(x => x.Add(It.IsAny<string>(), It.IsAny<object>()))
    .Callback((string index, object value) => {
        var i = index;
        var v = value;

            stateData[i] = v;
    });

//does not work via httpSession[key] = value;
httpSession.SetupSet(x => x[It.IsAny<string>()] = It.IsAny<object>())
    .Callback( (string index, object value) => {
        var i = index;
        var v = value;

        stateData[i] = v;
});

Je suis en utilisant Moq 4.0.10827

  • Je pense que vous devriez préciser ce qu'est la question de cette question pour la rendre plus claire. Dans sa forme actuelle, il est difficile de deviner ce que la question est.
  • Son problème, c'est que lorsque vous utilisez "Il.IsAny<string>" comme la valeur à l'intérieur de l'indexeur, il ne sera jamais de match.
  • Exactement, et l'édition de post pour le rendre plus clair.
InformationsquelleAutor Digicoder | 2011-06-09