J'ai une classe qui hérite d'une classe de base abstraite. J'essaie de vérifier qu'une méthode protégée spécifiée dans la classe de base est appelée deux fois et je voudrais vérifier que les paramètres passés sont des valeurs spécifiques (différentes pour chaque appel). J'espérais pouvoir utiliser Protected
avec Expect
ou Verify
, mais apparemment j'ai manqué ce qui peut être fait avec ces méthodes.Vérifiez qu'une méthode protégée par une base est appelée avec Moq 3.1
Est ce que j'essaye possible avec moq?
MISE À JOUR: Un exemple de ce que je suis en train de faire:
class MyBase
{
protected void SomeMethodThatsAPainForUnitTesting(string var1, string var2)
{
//Stuf with file systems etc that's very hard to unit test
}
}
class ClassIWantToTest : MyBase
{
public void IWantToTestThisMethod()
{
var var1 = //some logic to build var 1
var var2 = //some logic to build var 2
SomeMethodThatsAPainForUnitTesting(var1, var);
}
}
Essentiellement, je veux tester la façon dont les variables var1 et var2 sont créées correctement et est passé dans SomeMethodThatsAPainForUnitTesting
, donc essentiellement I Vous voulez simuler la méthode protégée, vérifiez qu'elle a été appelée au moins une fois et que tous les paramètres ont été transmis correctement. Si cela appelait une méthode sur une interface, ce serait trivial, mais je suis en train de décoller avec une méthode protégée.
Je ne peux pas facilement changer le design car c'est le développement de champs bruns et je ne suis pas la seule classe qui appelle la méthode.
Merci de votre clarification. J'ai enlevé ma réponse car elle n'a pas résolu le problème. –