1
我有如下类别:如何使用Moq来模拟内部类保护的方法?
public class TestService
{
public void Upload()
{
var manager = new Manager();
var worker = manager.CreateWorker();
worker.DoWork();
}
}
public class Manager
{
public Worker CreateWork()
{
return new Worker();
}
}
public class Worker()
{
public void DoWork()
{
SetupEnvironment();
//some codes here...
}
protected virtual void SetupEnvironment()
{
//some codes here ...
}
}
我想用最小起订量来创建一个上传单元测试(在TestService的类)的方法,以及工人的SetupEnvironment()方法应该嘲笑起来。我试过下面的代码,但它不起作用:
[TestMethod]
public void Upload_Test()
{
var mockWorker = new Mock<Worker>();
mockWorker .Protected().Setup<string>("SetupEnvironment").Returns(() =>
{
//some dummy code here ...
});
var service = new TestService();
service.Upload();
Assert.IsTrue(true);
}
任何人都知道如何使上述单元测试代码工作?
您的模拟对象是可以的,但是您的测试方法使用的是真实的对象而不是假的对象。这就是问题.... –