在Visual Studio中Assert失败后比较字符串

本文关键字:比较 字符串 失败 Assert Visual Studio | 更新日期: 2023-09-27 17:58:31

我编写了一个用于序列化XML文件的单元测试。它看起来像这样:

[TestMethod]
public void TestDeserialize()
{
    var appValue = Persister.ReadFromXml("before.xml");
    Persister.WriteToXml(appValue, "after.xml");
    var before = File.ReadAllText("before.xml");
    var after = File.ReadAllText("after.xml");
    Assert.AreEqual(before, after);
}

测试失败。因此,我在Visual Studio 2015的左下角看到一个小窗口,上面写着:

消息:"Assert.AreEqual"处出错。应为:<…>实际:<…>

在Eclipse或IntelliJ中,当我双击测试失败时,期望值和实际值会在diff编辑器中打开,这样我就可以快速查看它们的不同之处。

Visual Studio是否提供了类似的功能,或者我必须将文本复制到剪贴板,手动提取预期值和实际值,然后在文本编辑器中进行比较?XML文本相当长,因此我想从IDE获得一些帮助。

在Visual Studio中Assert失败后比较字符串

为了使用C#比较两个字符串,我建议使用String.Equals方法。

public void TestDeserialize()
{
    var appValue = Persister.ReadFromXml("before.xml");
    Persister.WriteToXml(appValue, "after.xml");
    var before = File.ReadAllText("before.xml");
    var after = File.ReadAllText("after.xml");
    bool before_equals_after = before.Equals(after, StringComparison.OrdinalIgnoreCase);
}

有关测试其他对象类型之间的相等性,请参见IComparablehttps://support.microsoft.com/en-us/kb/320727