À L'Aide De Moq Pour Tester Une Classe Abstraite
Je suis en train de lancer un test unitaire sur une méthode dans une classe abstraite. J'ai condensé le code ci-dessous:
Classe Abstraite:
public abstract class TestAb
{
public void Print()
{
Console.WriteLine("method has been called");
}
}
Test:
[Test]
void Test()
{
var mock = new Mock<TestAb>();
mock.CallBase = true;
var ta = mock.Object;
ta.Print();
mock.Verify(m => m.Print());
}
Message:
Method is not public
Ce que je fais mal? Mon objectif est de tester les méthodes à l'intérieur de la classe abstraite à l'aide de il Moq cadre.
Avez-vous vu ce fil? stackoverflow.com/questions/3604721/...
OriginalL'auteur Guerrilla | 2013-12-15
Vous devez vous connecter pour publier un commentaire.
Le message est parce que votre méthode d'Essai n'est pas public. Méthodes d'essai doivent être publics. Même après la méthode de test public, il échouera comme vous pouvez uniquement vérifier l'abstrait/méthodes virtuelles. Donc, dans votre cas, vous devrez faire de la méthode virtuelle puisque vous avez mise en œuvre.
OriginalL'auteur Adarsh Shah
Si vous voulez, à se moquer de méthodes dans une classe abstraite comme cela, vous devez faire en sorte qu'il soit virtuel ou abstrait.
OriginalL'auteur Adam Rackis