代码之家  ›  专栏  ›  技术社区  ›  JL. Hans Passant

Web服务单元测试

  •  1
  • JL. Hans Passant  · 技术社区  · 15 年前

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

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

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

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

    相反,我想做的是断言,只有在结构良好且不存在错误的情况下。

    为了简化这个问题,在Web服务方法中,如果发生任何错误,我会抛出一个soapexception。

    1.是否有方法仅根据退货状态进行测试? 2.第2条。最好的情况是将文档树与目标和实际的结构完整性进行比较,并根据结构健全而不是内容进行断言。

    事先谢谢:)

    2 回复  |  直到 15 年前
        1
  •  1
  •   Pradeep    15 年前

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

    测试用例中的方法

    1. 假设您期望WebService返回像expected.xml一样的结果。
    2. 调用服务并获取实际的obj。将其序列化为actual.xml。
    3. 使用类似的库比较actual.xml和expected.xml xmldiff (比较XML级别的结构/值更改)。
    4. 根据xmldiff的输出确定WebService是否通过了测试。
        2
  •  2
  •   Community Reversed Engineer    7 年前

    我想这是 WSDL Testing

    在那个答案中,我建议 SoapUI 作为一个好的工具