我想使用Approval Tests来验证日志输出。处理日志文本的动态内容(例如时间戳)的首选方法是什么?包含的FileApprover
总是比较文件是否完全相等。
问问题
205 次
2 回答
2
有几个解决方案。在这里,它们按优先顺序排列:
不要在测试期间记录动态内容。
在测试期间伪造动态内容,因此输出是一致的。
在比较之前清理日志文件。这通常看起来像:
ScrubFile("log.txt", "log_scrubbed.txt", new DateScrubber(), new GuidScrubber())
于 2017-03-31T11:39:16.520 回答
1
该概念与llewellyn falco所描述的相同。但是,Approvals.Java 中的 API 已更改。
val dynamicContentScrubber = RegExScrubber(pattern, replacement)
val scrubberOptions = Options(dynamicContentScrubber)
Approvals.verify(content, scrubberOptions)
Approvals.Java 有一些内置的清理器,例如DateScrubber
、GuidScrubber
和RegexScrubber
. org.approvaltests.core.Scrubber
您可以通过实现接口来编写自己的。
于 2021-05-19T02:43:36.817 回答