【问题标题】:Fluent assertions for xmlxml 的流利断言
【发布时间】: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 文档 &lt;Level1&gt;...&lt;/Level1&gt; 具有带有子“Level3”的根元素,但没有找到这样的子元素。它试图将 Level3 视为 Level1 而不是 Level2 的子级。

如何获取Level3并检查Level4中是否存在某些属性?有没有办法检查属性值的类型?

【问题讨论】:

  • Level1,2,3都在root下,你应该选择元素level2,然后申请level2.Should().HaveElelment("Level3")
  • @iSR5 我试过 level2.Should().HaveElement("Level3") - 抛出错误 level2 在当前上下文中不存在

标签: c# xml unit-testing xunit fluent-assertions


【解决方案1】:

终于让它工作了,将来有人可能会发现它有用

应该是:

doc.Should().HaveElement("Level2").Which.Should().HaveElement("Level3");

【讨论】:

    猜你喜欢
    • 2014-07-27
    • 2018-06-25
    • 2018-12-01
    • 2021-01-18
    • 2020-08-16
    • 2016-04-11
    • 2015-09-23
    • 2021-01-08
    • 2022-07-23
    相关资源
    最近更新 更多