最方便的单元测试Xml / XElement结果的方法

时间:2015-02-27 20:04:26

标签: c# xml unit-testing

我有一些代码大量使用XElement类来构建Xml段,例如代码看起来像

        XNamespace ns = "ns";
        XElement myXml = new XElement(
            ns + "filter",
            new XElement(
                ns + "and",
                new XElement(
                    ns + "equals",
                    new XAttribute("name", "uid"),
                    new XElement(ns + "value", "some text"))));

它最终会吐出一些等同于

的Xml代码
        <ns:filter>
            <ns:and>
                <ns:equals name="uid">
                    <ns:value>some text</ns:value>
                </ns:equals>
            </ns:and>
        </ns:filter>

现在我需要对逻辑单元测试进行xpath,获取属性等等。我总是可以编写我的Linq-Xml来检查数据,但这非常繁琐,因为我需要对很多相似的代码进行单元测试。

我查看了fluent assertions,它非常接近,但它似乎无法验证嵌套元素的值。

任何人都有一些好的推荐?

1 个答案:

答案 0 :(得分:0)

您可以致电XElement.DeepEquals(actual, expected)。 但是,您将无法获得有用的失败消息。

你也可以简单断言他们的ToString()是相同的,并使用你的断言框架的字符串不同。