总之
我需要一种将 XML 字符串反序列化为通常由 3rd 方 Web 服务返回的对象的方法。
使用 C#。
详细地
我有使用第 3 方服务引用(Web 服务)的代码 - 所以通常的东西:我们传入一个 Request 对象,它返回一个 Response 对象。
关于单元测试 - 我对服务参考的内部工作不感兴趣,因为这是第 3 方服务。我只对两件事感兴趣:
- 我的代码是否生成正确的请求对象?
- 当服务参考返回它的响应时,我是否正确处理了这个响应?
依次取每个:
我的代码是否生成正确的请求对象?
这是我能做到的。如果有人对此感兴趣,我所做的就是用 RhinoMocks Mock 对象替换我的服务引用。在我的单元测试中,我在 Mock 上调用该方法,然后检查传入的参数,将实际的 Request 对象与预期的 Request 对象进行比较。
当服务参考返回它的响应时,我是否正确处理了这个响应?
我在这里要做的是为我的服务引用创建一个 RhinoMocks 存根,这样当它被调用时,这个存根返回一个填充了我的测试数据的响应对象。
我面临的问题是这个特定的 3rd 方服务返回的响应对象非常复杂。如果我试图通过手动对所有属性值进行硬编码来创建一个,那么这可能会占用我一整天的时间。
但是,我可以很容易地从该服务捕获 XML 序列化响应。然后我可以轻松地编辑它的值并将这个 XML 存储在我的一个单元测试中。
我所追求的是一种简单的方法,然后将这个“测试”XML“反序列化”为响应对象,并使用它来对来自我的存根的响应进行编程。
任何帮助将非常感激。
谢谢
格里夫