比较两个字符串并使用diff显示结果-可以快速发现差异

在将两个字符串与#kotlintest进行如下测试时:

    "compare two strings" {
      "1: one\n2: two\n3: three".shouldBe("1: one1\n22: two\n3: three")
    }

,输出如下所示:

expected: "1: one1
22: two
3: three" but was: "1: one
2: two
3: three"
org.opentest4j.AssertionFailedError: expected: "1: one1
22: two
3: three" but was: "1: one
2: two
3: three"

即使有这么短的字符串-也很难发现,这两个字符串之间的确切区别。而且,如果比较较长的字符串或对象属性,则要困难得多,因为结果只是一条长长的可滚动行。

但是-我们都非常习惯读取+/-线和颜色的“差异”,从而立即发现差异。

例如,这是由rspec运行时相同的assert的结果(为ruby测试lib):

expected: "1: one\n22: two\n3: three"
     got: "1: one\n2: two\n3: three"

(compared using ==)

Diff:
@@ -1,4 +1,4 @@
 1: one
-22: two
+2: two
 3: three

如您所见-它以两种方式帮助我。 首先-它将两个字符串放在彼此的正下方,这样我就可以发现字符级差异。 其次,它以我们熟悉的颜色显示出不错的diff,因此我可以立即看到没有什么不同和什么不同。

是否有一种方法可以实现一些相似的测试结果比较,并提供相似的好处以快速发现差异?

我尝试了KotlinTest和JUnit5-两种比较结果都非常“水平地滚动一行”。 也许在其他Kotlin测试框架中?

谢谢!

hanxuesong1988 回答:比较两个字符串并使用diff显示结果-可以快速发现差异

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3127995.html

大家都在问