如何使用 ApprovalTests 来批准日志
How to use ApprovalTests for approving logs
我想用Approval Tests验证日志输出。处理日志文本的动态内容的首选方法是什么,例如时间戳?包含的 FileApprover
始终比较文件是否完全相等。
对此有几个解决方案。以下是它们的优先顺序:
测试期间不记录动态内容。
在测试期间伪造动态内容,以便输出一致。
比较前先清理日志文件。这通常看起来像:
ScrubFile("log.txt", "log_scrubbed.txt", new DateScrubber(), new GuidScrubber())
这个概念与 llewellyn falco 描述的相同。但是,API 在 Approvals.Java 中发生了变化。
val dynamicContentScrubber = RegExScrubber(pattern, replacement)
val scrubberOptions = Options(dynamicContentScrubber)
Approvals.verify(content, scrubberOptions)
Approvals.Java 有一些内置的洗涤器,如 DateScrubber
、GuidScrubber
和 RegexScrubber
。您可以通过实现 org.approvaltests.core.Scrubber
接口来编写自己的接口。
我想用Approval Tests验证日志输出。处理日志文本的动态内容的首选方法是什么,例如时间戳?包含的 FileApprover
始终比较文件是否完全相等。
对此有几个解决方案。以下是它们的优先顺序:
测试期间不记录动态内容。
在测试期间伪造动态内容,以便输出一致。
比较前先清理日志文件。这通常看起来像:
ScrubFile("log.txt", "log_scrubbed.txt", new DateScrubber(), new GuidScrubber())
这个概念与 llewellyn falco 描述的相同。但是,API 在 Approvals.Java 中发生了变化。
val dynamicContentScrubber = RegExScrubber(pattern, replacement)
val scrubberOptions = Options(dynamicContentScrubber)
Approvals.verify(content, scrubberOptions)
Approvals.Java 有一些内置的洗涤器,如 DateScrubber
、GuidScrubber
和 RegexScrubber
。您可以通过实现 org.approvaltests.core.Scrubber
接口来编写自己的接口。