NUnit断言AreEqual字符串差异

Ale*_*ing 2 .net c# nunit nunit-3.0

我正在为代码生成器编写单元测试,大多数测试将跨几行的输出与一些黄金输出进行比较。目前,我正在比较输出,Assert.AreEqual(string, string)以显示围绕第一个差异的上下文。

不幸的是,这不是很有帮助。理想情况下,我希望获得不同的输出。最好的方法是什么?我目前的计划是将生成的代码写入文件,并调用DIFFTOOLenv var 引用的可执行文件(否则diff.exePATH,否则为默认的NUnit行为),并Assert.Fail()使用适当的消息进行调用。

Cha*_*lie 6

您可以通过指定.NoClip为的修饰符来消除长字符串的剪切EqualConstraint。这要求您从旧版切换Assert.AreEqual为使用断言的约束模型:

C# Assert.That(actual, Is.EqualTo(expected).NoClip);

这将为您提供两个字符串的全部价值,但如果不重新格式化,可能很难阅读。

我们长期以来一直对改善两个长字符串之间差异的显示感兴趣。快来做公关!:-)