xml 的流利断言
Posted
技术标签:
【中文标题】xml 的流利断言【英文标题】:Fluent assertions for xml 【发布时间】:2020-02-08 23:27:26 【问题描述】:我有一个 xml 格式的文件:
<Level1>
<Level2>
<Level3>
<Level4 attr1 = "123.4" attr2 = ""> </Level4>
</Level3>
</Level2>
<Level1>
我正在使用 XUnit 来检查 xml 的结构。
[Fact]
public void Xml_Check()
var doc = XDocument.Load("test.xml");
doc.Should().HaveRoot("Level1");
doc.Should().HaveElement("Level2");
doc.Should().HaveElement("Level3"); //Erroring on this line
我收到错误消息:预期的 XML 文档 <Level1>...</Level1>
具有带有子“Level3”的根元素,但没有找到这样的子元素。它试图将 Level3 视为 Level1 而不是 Level2 的子级。
如何获取Level3并检查Level4中是否存在某些属性?有没有办法检查属性值的类型?
【问题讨论】:
Level1,2,3都在root下,你应该选择元素level2,然后申请level2.Should().HaveElelment("Level3")
@iSR5 我试过 level2.Should().HaveElement("Level3") - 抛出错误 level2 在当前上下文中不存在
【参考方案1】:
终于让它工作了,将来有人可能会发现它有用
应该是:
doc.Should().HaveElement("Level2").Which.Should().HaveElement("Level3");
【讨论】:
以上是关于xml 的流利断言的主要内容,如果未能解决你的问题,请参考以下文章