我对模拟环境非常陌生,最近使用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;
}
}
使用Moq进行单元测试
[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为null。即使我通过moq设置属性,也不确定为什么org为null。有人可以告诉我一些我做错了什么。顺便说一下,WebService认为它好像可以是任何webservice
答案 0 :(得分: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();