我必须在项目中使用许多 ASMX Web 服务,但它们的方法调用使得对我的其余代码进行单元测试变得困难。
当我过去使用 WCF 服务时,它会为客户端生成一个接口(interface),该接口(interface)允许我在单元测试中模拟服务调用。
ASMX Web 服务也可以实现同样的效果吗?
最佳答案
我的解决方案
- 右键单击
服务引用 > 添加服务引用 > 高级 > 添加 Web 引用
,在 Visual Studio 中添加 Web 引用。 - 打开生成的
reference.cs
文件 - 右键单击服务的类名称,然后选择
Refactor > Extract > Extract Interface
。这将为您提供一个代表您的服务方法的界面。 - 为您的服务创建一个新的分部类,并使其继承自新接口(interface),确保类的命名空间和名称与
reference.cs
中服务的命名空间和名称相匹配
现在您已经有了界面,您将能够在单元测试中模拟该服务。
我希望这对其他人有帮助,如果有更简单的方法,请告诉我。
关于c# - 使用 ASMX 并模拟方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26674687/