我们需要验证我们生成的xml文档的内容。是否有任何框架可以帮助您轻松提取和验证文档的内容?MSTest的XML单元测试框架
的东西,我们需要知道
- 包含元素的元素X
- 值x
- X元素包含z值属性Ÿ
- 意想不到的元素
一点也没有”如果没有断言,那么这很重要,这可以通过MSTest完成
我们需要验证我们生成的xml文档的内容。是否有任何框架可以帮助您轻松提取和验证文档的内容?MSTest的XML单元测试框架
的东西,我们需要知道
一点也没有”如果没有断言,那么这很重要,这可以通过MSTest完成
看看流利断言库文件的位置:http://fluentassertions.codeplex.com/documentation
题为“XML类”的部分听起来像你以后。代码使用下面的LINQ-to-XML。
xDocument.Should().HaveRoot("configuration");
xDocument.Should().HaveElement("settings");
xElement.Should().HaveAttribute("age", "36");
xElement.Should().HaveElement("address");
xAttribute.Should().HaveValue("Amsterdam");
你可以从这里的NuGet安装FluentAssertions:http://nuget.org/packages/FluentAssertions
这看起来完全是我以后的事情,我得试试看 –
您也可以使用像XSD.EXE工具(包括在VS)从你有你的XML XSD文件生成C#实体。
生成对象后,可以使用XmlSerializer的实例来反序列化XML。如果你不能反序列化你的XML,那么你会很快知道你有无效的XML。
之后,您应该能够通过使用反序列化实体的各种属性来相当容易地验证XML的内容。
Here is a good starter blog post关于从XSD生成实体对象,它使用XmlSerializer显示一些简单的反序列化代码。
你有xsd的xml吗? –
我不想依赖xsd。此刻我们必须进行一些后期处理,以包含具有默认值的属性。我宁愿可以查询文档的东西。也许只是一些LINQ到基于xml的帮助程序 –
我问到xsd的唯一原因是它可以很容易地生成POCO代码。一旦你将Xml反序列化为对象,验证内容是微不足道的。反序列化的行为将有助于验证格式化。 –