我有一个使用WCF服务的应用程序.现在我想将单元测试添加到应用程序中.
在某些情况下,我需要模拟WCF服务,因为从服务中获取所需的行为有时很困难(例如,服务抛出特殊异常).
我可以添加另一个接口到wcf客户端,但这看起来有点傻,因为客户端调用已经在使用接口.
有一种简单的方法来模拟WCF服务吗?比创建另一个接口层并重定向其中的每个WCF调用更容易?
编辑:大多数答案似乎不太了解WCF服务使用,所以一些澄清:
要使用ViewModel的WCF服务,我必须管理这样的连接:
ChannelFactory<IMyWcfService> channelFactory = new ChannelFactory<IMyWcfService>("");
IMyWcfService proxy = channelFactory.CreateChannel();
proxy.CallMyStuff();
proxy.Close();
Run Code Online (Sandbox Code Playgroud)
我不能只将代理的ViewModel传递给WCF,因为需要为每个事务打开和关闭连接.因此,使用RhinoMock/NMock不起作用,因为它们需要一个ViewModel来获取代理作为参数,如果您使用WCF,则不能这样做.
我正在尝试Microsoft Fakes在我的解决方案中设置的单元测试项目中运行并运行.
由于某种原因,Add Fakes Assembly缺少选项,这意味着我无法创建程序集的模型.由于这是添加Microsoft.QualityTools.Testing.Fakes程序集的唯一替代方法,因此我也无法使用该Shim功能.
我最近安装Visual Studio 2012 Professional并安装了更新3,这是第一次进入Visual Studio 2012.我没有改变任何设置.虽然我已安装ReSharper,但这可能是罪魁祸首吗?
vs-unit-testing-framework microsoft-fakes visual-studio-2012