c# - 使用 ASMX 并模拟方法

标签 c# wcf unit-testing mocking asmx

我必须在项目中使用许多 ASMX Web 服务,但它们的方法调用使得对我的其余代码进行单元测试变得困难。

当我过去使用 WCF 服务时,它会为客户端生成一个接口(interface),该接口(interface)允许我在单元测试中模拟服务调用。

ASMX Web 服务也可以实现同样的效果吗?

最佳答案

我的解决方案

  1. 右键单击服务引用 > 添加服务引用 > 高级 > 添加 Web 引用,在 Visual Studio 中添加 Web 引用。
  2. 打开生成的reference.cs文件
  3. 右键单击服务的类名称,然后选择Refactor > Extract > Extract Interface。这将为您提供一个代表您的服务方法的界面。
  4. 为您的服务创建一个新的分部类,并使其继承自新接口(interface),确保类的命名空间和名称与 reference.cs 中服务的命名空间和名称相匹配

现在您已经有了界面,您将能够在单元测试中模拟该服务。

我希望这对其他人有帮助,如果有更简单的方法,请告诉我。

关于c# - 使用 ASMX 并模拟方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26674687/

相关文章:

c# - 在 ASP.NET 中向用户显示预期的错误

c# - 从 asp.net 中的代码后面获取 anchor 元素的 href 属性

c# - 为什么保存了 'in progress' 后测试结果有时还是 'passed'?

wcf - 为什么我不能使用 net.tcp 连接到 WCF 服务,但可以使用 http?

android - Android 的 ActivityUnitTestCase 中的测试对话框

c# - 具有多个相同类型实例的构造函数

c# - 如何在 ASP.NET Identity 中编辑用户

c# - 无法启动服务并出现 net.tcp 绑定(bind)错误 10049

c# - WCF Streaming - 限制速度

java - TestNG 测试永远持续(但不总是)