0

在我的组织中,我们为 API 使用 RESTful 架构。我正在创建可以在每晚构建之后运行的自动化单元测试。每个 API 调用都会返回一个 XML 字符串,然后我将其反序列化为 C# 对象。有没有办法动态生成这些类,还是我必须手动为每个将要实例化的对象创建一个类?

其次,有没有办法将所有数据库值返回到运行这些测试之前的状态。我知道我可以设置一个测试数据库,其中数据库在每晚的某个时间刷新,但我想知道是否有任何方法可以在测试项目本身的测试之前将数据库恢复到初始状态。

最后,有谁知道如何在我的名字前添加一个新行?哈哈 :)

谢谢, 埃尔南多·霍约斯

4

2 回答 2

0

两种选择。

  1. 查看 DynamicXml ( http://nuget.org/packages/netfx-System.Xml.DynamicXml/ ) 完全符合您的要求。
  2. 将响应读入 XPathDocument,然后使用 XPath 对文档执行单元测试:http: //msdn.microsoft.com/en-us/library/system.xml.xpath.xpathdocument.aspx

第二个选项的好处是它与 C# 的绑定没有那么紧密,因为 XPath 是跨平台的,而 DynamicXML 只是 C#。

于 2013-05-31T13:54:23.343 回答
0

除非有一些核心反射发射,否则您必须为每个 XML 对象创建类。幸运的是,Visual Studio 附带了XSD工具,因此您可以快速生成这些类。

鉴于您的任务 - 单元测试 - 您始终可以跳过反序列化并使用linq to xml以更有针对性的方式查询您正在测试的特定事物的结果。如果您的每个单元测试都关心结果的每个字段,那么无论如何您都做错了。在您的情况下,我肯定会使用 linq,因为它可以让您无需不断更新您的模型(您似乎没有重复使用应用程序模型)

于 2013-05-31T13:55:04.370 回答