【发布时间】:2014-03-06 11:04:24
【问题描述】:
问题背景:
我有两个独立的项目。一个由类和一个测试项目组成,另一个由 Web 服务组成。我想针对 Web 服务实现模拟。
问题:
我有一个对“ProxyHandler”类使用的名为“webService”的网络服务的网络引用,如图所示:
private webService _webServiceObject
public ProxyHandler(webService webServiceObject)
{
_webService = webServiceObject;
}
web服务类实现了一个接口,如图
public class WebServiceClass:IWebService
哪个实现?
我能否将 Web 引用设为“IWebService”类型?
或者,我是否需要简单地基于一个使用webservice的接口实现一个新的类,然后这个类本身是由代理实现的?这将允许我对界面进行模拟,如下所示:
修改后的代理类:
private webService _webServiceHandlerObject;
public ProxyHandler(IwebServiceHandler webServiceHandlerObject)
{
_webServiceHandlerObject = webServiceHandlerObject;
}
添加了'WebServiceHandlerObject:
private webService _webServiceObject;
public Class WebServiceHandler:IwebServiceHandler
public WebServiceHandler(webService webServiceObject)
{
_webServiceObject = webServiceObject;
}
给予:
var proxy = new ProxyHandler(new WebServiceHandler(new webService()));
var mockedProxy = newMock<IwebServiceHandler>();
【问题讨论】:
标签: c# unit-testing mocking unity-container