kotlin - 比较两个字符串并使用 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
(test lib for ruby) 运行时,这是相同断言的结果:
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 测试框架中?
谢谢!
解决方案
推荐阅读
- python - 如何通过聚合从组中删除 Pandas 中的嵌套列名?
- vue.js - 水平对齐
来自 Vuetify - php - 用户在 PHP 中向汽车网站上传广告
- oracle-apex - Oracle APEX - 使用重定向到页面时该值不会结转
- swift - 数学公式迅速
- c - 在 C 中的 Ubuntu 上获取“分段错误(核心转储)”以获得哈希表
- python - Pandas 和 Python:在 for 循环之外保存 .sum() 的结果
- c# - Xamarin:无法解析引用:`System.Threading.Tasks.Extensions`,由`MySqlConnector`引用。
- tableau-api - 在 Tableau 中计算周数(从特定月份开始)
- android - 让 OkHttp 信任所有 SSL 证书