我们需要验证我们生成的 xml 文档的内容。是否有任何框架可以帮助轻松提取和验证文档的内容?
我们需要知道的事情
- 包含元素 x
- 元素 x 的值
- 元素 x 包含具有值 z 的属性 y
- 意想不到的元素
如果没有断言也没关系,这可以通过 MSTest 完成
在此处查看 Fluent Assertions 库文档:https ://fluentassertions.com/introduction
标题为“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 的内容。
这是一篇关于从 XSD 生成实体对象的不错的入门博客文章,它展示了一些使用 XmlSerializer 的简单反序列化代码。