gpt4 book ai didi

java - 验证属性或配置的单元/集成测试

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:18 25 4
gpt4 key购买 nike

编写验证属性或配置的单元/集成测试是否有意义,因为任何中型到高度复杂的应用程序都包含大量配置(通过 YAML 或属性文件)?

许多这些配置派生了运行时行为,即使它们被底层库或框架使用。验证配置在运行时是否正确使用是一个明智的想法吗?

一个赞成的论点是,由于没有编译器安全性,我们需要以某种方式验证配置是否正确地规定了行为。

反对论点是,我们是否在验证底层框架的实现?

仅测试配置文件可能还不够,因为它不能保证配置是否会在运行时正确使用(可能存在拼写错误或其他类似错误)。

最佳答案

没有。单元测试将告诉您什么在测试工具中有效,这与生产中的不同——而且应该不同。

当您说要验证 配置时,您一语中的。测试和验证是完全不同的两件事。如果您有办法在生产环境中验证运行时配置,它还可以帮助您诊断运行时的不当行为。

有很多方法可以验证运行时配置。最简单和最好的是日志记录(例如“2016-09-24 10:13:00 连接到 http://my-configured-server.example.com 以获取用户 token ”)。不要只是将配置转储到日志文件中——这不是端到端验证——将配置详细信息散布到日志消息中。

配置问题通常是全有或全无;如果你没有得到恰到好处的配置,什么也不会发生,你也不知道为什么。 (对于函数式编程尤其如此。)日志记录不仅可以告诉您配置是什么,还可以告诉您配置在什么时候失败。

还有其他聪明的方法可以将配置细节添加到运行时中。例如,将详细的运行时详细信息附加到错误消息中,尤其是在电子邮件中,您的空间比日志中的空间更大。或者在 Debug模式下,将鼠标悬停在 UI 元素上会告诉您有关该元素的类和其他信息。

集成测试(组件在插在一起时工作)和冒烟测试(一些完整的配置做正确的事情)可能很重要——如果你部署无需手动测试——但它们不能替代运行时验证。

关于java - 验证属性或配置的单元/集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39126068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com