Gue*_*lla 12 c# testing nunit unit-testing moq
我正在尝试对抽象类中的方法运行单元测试.我浓缩了下面的代码:
抽象类:
public abstract class TestAb
{
public void Print()
{
Console.WriteLine("method has been called");
}
}
Run Code Online (Sandbox Code Playgroud)
测试:
[Test]
void Test()
{
var mock = new Mock<TestAb>();
mock.CallBase = true;
var ta = mock.Object;
ta.Print();
mock.Verify(m => m.Print());
}
Run Code Online (Sandbox Code Playgroud)
信息:
Method is not public
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?我的目标是使用Moq框架测试抽象类中的方法.
Ada*_*hah 15
该消息是因为您的Test方法不公开.测试方法需要公开.即使在公开测试方法之后,它也会失败,因为您只能验证抽象/虚拟方法.因此,在您的情况下,您必须将方法设置为虚拟,因为您已实现.