Mit Moq Testen Eine Abstrakte Klasse,
Ich versuche zu laufen, einen unit-test einer Methode in eine abstrakte Klasse. Ich verdichtet haben, die den folgenden code:
Abstrakte Klasse:
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());
}
Nachricht:
Method is not public
Was mache ich hier falsch? Mein Ziel ist, testen Sie die Methoden innerhalb der abstrakten Klasse mithilfe er Moq-framework.
- Hast du diesen thread? stackoverflow.com/questions/3604721/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Nachricht, weil deine Test-Methode ist nicht öffentlich. Test-Methoden müssen öffentlich sein. Auch nach der test-Methode public wird es scheitern, denn du kannst nur überprüfen, abstrakte/virtuelle Methoden. Also in Ihrem Fall müssen Sie die virtuelle Methode, da Sie die Umsetzung.
Wenn Sie wollen, zu verspotten Methoden einer abstrakten Klasse wie dieser, dann müssen Sie es entweder virtuell oder Abstrakt.