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);
}
任何人都知道如何使上述單元測試代碼工作?
您的模擬對象是可以的,但是您的測試方法使用的是真實的對象而不是假的對象。這就是問題.... –