测试驱动开发:提升单元测试确认方式
在软件开发中,依赖管理和测试确认方式是至关重要的环节。合理的依赖管理能让代码更具灵活性,而优秀的测试确认方式则能提高测试的可读性和可维护性。下面我们将深入探讨这些内容。
依赖管理与日志库设计
在处理输出类时, StreamOutput
类相对简单,因为它无需考虑文件相关操作。当 FileOutput
类创建耗时过长时,可使用 StreamOutput
类来写入文件。即便我们创建了简化版的 FileOutput
,但其他团队可能不愿提供部分实现,此时可采用模拟解决方案,待完整实现完成后再进行替换。这种可替换实现的能力,正是合理管理依赖带来的显著优势。
在日志库开发中,我们不仅添加了将日志消息发送到多个目标的新功能,还通过接口实现了这一能力。该接口有助于明确和隔离向目标发送文本行的概念,同时也揭示了日志库的依赖关系,即日志库依赖于将文本发送到某个地方的能力。目标可以是日志文件、控制台或其他位置。在识别出这一依赖之前,日志库在很多地方默认只处理日志文件。通过改进,我们简化了设计,同时使其更具灵活性。此外,我们还在没有完整文件日志组件的情况下实现了文件日志功能,创建了一个模拟的文件日志组件,省略了完整实现所需的额外文件管理任务。
单元测试库的改进
接下来,我们将目光转向单元测试库,探讨如何将确认方式改进为更具扩展性和易理解性的新风格。
现有确认方式的问题
现有测试中的确认方式采用经典风格,例如: