使用ASMX并模拟方法

时间:2014-10-31 12:26:45

标签: c# wcf unit-testing mocking asmx

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

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

ASMX webservices可以做同样的事情吗?

2 个答案:

答案 0 :(得分:3)

我的解决方案

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

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

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

答案 1 :(得分:-2)

您可以使用Visual Studio默认安装的 WcfTestClient 。它易于使用且适合测试 wcf和asmx服务

您可以从路径中找到此工具 “C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ WcfTestClient.exe”

您也可以通过在项目中添加asmx服务的服务引用来进行单元测试。当您打开Reference.cs时,您将获得一个接口 [SeriveName] Soap.cs ,其中包含所有单元测试方法。