J'ai une classe abstraite qui a une méthode virtuelle. La méthode est virtuelle dans le cas où une implémentation ultérieure doit remplacer cette fonctionnalité. Cependant, Moq proxy toutes les méthodes virtuelles, donc je ne semble pas être en mesure de tester le code réel qui est écrit, et utilise à la place l'installation Mock pour cette méthode (qui est actuellement de retourner la valeur par défaut).Configuration de Moq pour ignorer une méthode virtuelle
Exemple abstrait:
public abstract SomeAbstract
{
public abstract Format(IFormatProvider provider, string format)
{
// does some stuff i need to test
}
}
Mon test NUnit:
[Test]
public void Should_Set_Format_State()
{
Mock<SomeAbstract> mock = new Mock<SomeAbstract>();
mock.Object.Format(CultureInfo.CurrentCulture, "format string");
// do tests to make sure Format correctly changed the object's state
}
Comment puis-je configurer mon objet Mock juste laisser mon travail virtuel méthode Format
, sans avoir à retirer virtual
de la méthode ?! Peut-être que j'abuse du concept de moquerie dans ce cas.
Question intéressante, j'ai appris quelque chose! Yay. –