gpt4 book ai didi

c# - NUnit Assert AreEqual 多行文本差异

转载 作者:行者123 更新时间:2023-11-30 20:17:22 24 4
gpt4 key购买 nike

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

不幸的是,这不是很有帮助。理想情况下,我想得到输出的差异。 这样做的最佳方法是什么?我目前的计划是将生成的代码写入文件并调用 DIFFTOOL env var 引用的可执行文件(else 来自 PATH 的 diff.exe,否则为默认的 NUnit 行为)并使用适当的消息调用 Assert.Fail()

最佳答案

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

C#
Assert.That(实际,Is.EqualTo(预期)。NoClip);

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

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

关于c# - NUnit Assert AreEqual 多行文本差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44833280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com