【问题标题】:Moq:How to retrieve property/method which depends on other propety起订量:如何检索依​​赖于其他属性的属性/方法
【发布时间】:2012-05-31 13:41:14
【问题描述】:

我对模拟环境非常陌生,最近使用 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 服务

【问题讨论】:

    标签: moq


    【解决方案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();
    

    【讨论】:

    • 如果它工作得很好,你不应该接受他的回答,也许也赞成吗?
    • 对不起伊恩。我只接受答案。 Upvote 将需要我目前没有足够的声誉
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 2016-07-08
    • 2017-02-08
    • 2011-09-09
    • 2021-06-22
    • 2011-08-20
    • 2018-03-26
    相关资源
    最近更新 更多