Comment vérifieriez-vous les paramètres d'une fonction qui accepte un dictionnaire? Fondamentalement, je veux vérifier que le paramètre pour GetCodes a les mêmes valeurs que la variable "someDictionary".Contraintes de Rhino Mocks et paramètres de dictionnaire
J'ai oublié de mentionner que la méthode testée construit le dictionnaire et le transmet à la méthode someService.GetCodes().
public void SomeOtherMethod() {
IDictionary<string, string> dict = new Dictionary<string, string> {
{"Key 1", "Value 1"},
{"Key 2", "Value 2"}
};
someService.GetCodes(dict); // This would pass!
IDictionary<string, string> dict2 = new Dictionary<string, string> {
{"Key 1", "Value 1a"},
{"Key 2a", "Value 2"}
};
someService.GetCodes(dict2); // This would fail!
}
, je veux vous assurer que le dictionnaire est passé à la méthode GetCodes contiennent les mêmes que celle de la Expect.Call spécifiées ... méthode.
Un autre cas d'utilisation serait peut-être que je veux juste voir si les clés du dictionnaire contiennent "Clé 1" et "Clé 2", mais ne se soucient pas des valeurs ... Ou le tour autour.
Je ne suis pas sûr que ce soit la solution que je recherchais. Ce que je veux vérifier, ce sont les valeurs du dictionnaire, pas nécessairement le même dictionnaire. –
Si vous vérifiez que c'est la même référence de dictionnaire cela implique qu'il a les mêmes valeurs, donc mettre des valeurs dans le dictionnaire n'est pas nécessaire. J'ai mis à jour mon message pour montrer comment vous pouvez vérifier qu'une méthode d'objet mockée a été appelée avec des arguments spécifiques. –
Je ne sais rien à propos de Rhino Mocks, mais ne pourriez-vous pas simplement remplacer le corps du prédicat dans le "UPDATE" ci-dessus et le changer à quelque chose comme dictionary => dictionary.All (pair => someDict [paire.Key] == pair.Value)? – mquander