Web services Web服务单元测试

Web services Web服务单元测试,web-services,unit-testing,Web Services,Unit Testing,这是一个有趣的问题,我相信很多人都会从中受益 典型的web服务将返回序列化的复杂数据类型,例如: <orgUnits> <orgUnit> <name>friendly name</orgUnit> </orgUnit> <orgUnit> <name>friendly name</orgUnit> </orgUnit> </orgUnits>

这是一个有趣的问题,我相信很多人都会从中受益

典型的web服务将返回序列化的复杂数据类型,例如:

<orgUnits>
 <orgUnit>
     <name>friendly name</orgUnit>
 </orgUnit>
 <orgUnit>
     <name>friendly name</orgUnit>
 </orgUnit>
</orgUnits>

友好的名字
友好的名字
VS2008单元测试似乎想要断言返回对象的精确匹配,也就是说,如果对象(目标和实际)在结构和内容方面是相同的

我想做的是,仅当结构良好且不存在错误时才断言

为了简化问题,在web服务方法中,如果发生任何错误,我抛出一个SOAPException

1.是否有一种仅根据退货状态进行测试的方法 2.最好的情况是比较目标和实际的文档树的结构完整性,并基于可靠的结构而不是内容进行断言


提前感谢:)

我想这是


在这个答案中,我建议使用一个很好的工具

一个特定于您需求的答案是比较对象的序列化版本(到XML),而不是对象本身

测试用例中的方法

  • 假设您期望Web服务返回expected.xml
  • 调用服务并获取实际的Obj。将其序列化为实际的.xml
  • 使用类库比较actual.xml和expected.xml(比较xml级别的结构/值更改)
  • 根据xmldiff的输出,确定Web服务是否通过了测试