0

我对模拟环境非常陌生,最近使用 Moq 进行了一些单元测试,并陷入了以下测试实施。

界面:

public interface IWebServiceWrapper
{
   string _org { get; set; }
   WebService GetWebService();
}

具体类

public class WebServiceWrapperImpl : IWebServiceWrapper
{
  public string _org {get; set;}
  public WebService GetWebService()
  {
     WebService new_webservice = new WebService();
     new_webservice.org= _org; 
     return new_webservice;
  }
}

使用最小起订量进行单元测试

[TestMethod]
public void CheckAccount()
{
      Mock<IWebServiceWrapper> mockSrvWrapper = new Mock<IWebServiceWrapper>();
      mockSrvWrapper.Setup(m => m._org).Returns("Some org");
      WebService new_webservice = mockSrvWrapper.Object.GetWebService();
      ............
      ............
 }

这里new_webservice填充了空值,原因是 org 为空。即使我通过最小起订量设置了属性,也不确定为什么 org 为空。有人可以给我一个线索我做错了什么。顺便说一句,这里 WebService 认为它可以是任何 Web 服务

4

1 回答 1

1

这能满足您的需要吗?

Mock<IWebServiceWrapper> mockSrvWrapper = new Mock<IWebServiceWrapper>();
mockSrvWrapper.SetupProperty(m => m._org, "Some org");
mockSrvWrapper.Setup(m => m.GetWebService()).Returns(
        () => new WebService { org = mockSrvWrapper.Object._org });
WebService new_webservice = mockSrvWrapper.Object.GetWebService();
于 2012-05-31T14:51:53.423 回答