C# NUnit断言为相等字符串差异
我正在为代码生成器编写单元测试,我的大多数测试都会将跨越几行的输出与一些黄金输出进行比较。目前,我正在将输出与C# NUnit断言为相等字符串差异,c#,.net,nunit,nunit-3.0,C#,.net,Nunit,Nunit 3.0,我正在为代码生成器编写单元测试,我的大多数测试都会将跨越几行的输出与一些黄金输出进行比较。目前,我正在将输出与Assert.AreEqual(string,string)进行比较,后者显示第一个差异周围的上下文 不幸的是,这不是很有帮助。理想情况下,我希望得到不同的输出这样做的最佳方式是什么?我当前的计划是将生成的代码写入文件,调用DIFFTOOLenv var引用的可执行文件(elsediff.exefromPATH,否则为默认NUnit行为)并调用Assert.Fail()带有适当的消息。您
Assert.AreEqual(string,string)
进行比较,后者显示第一个差异周围的上下文
不幸的是,这不是很有帮助。理想情况下,我希望得到不同的输出这样做的最佳方式是什么?我当前的计划是将生成的代码写入文件,调用
DIFFTOOL
env var引用的可执行文件(elsediff.exe
fromPATH
,否则为默认NUnit行为)并调用Assert.Fail()
带有适当的消息。您可以通过将.NoClip
指定为EqualConstraint
的修饰符来消除长字符串的剪裁。这要求您从传统的Assert.AreEqual
切换到使用断言的约束模型:
C#
Assert.That(实际的,Is.EqualTo(预期的).NoClip);
这将为您提供两个字符串的完整值,但如果不重新格式化,可能很难读取
我们一直有兴趣改进两个长字符串之间差异的显示。来做公关吧!:-)