java-验证属性或配置的单元/集成测试
作者:互联网
编写任何用于验证属性或配置的单元/集成测试是否有意义,因为任何中等或高度复杂的应用程序都包含许多配置(通过YAML或属性文件)?
即使这些配置被基础库或框架使用,它们中的许多配置也会派生运行时行为.在运行时验证配置是否正确使用是一个明智的主意吗?
一个赞成理由是,由于没有编译器安全性,因此我们需要以某种方式验证配置是否正确指示了行为.
争论的焦点是,我们是否正在验证底层框架的实现?
仅测试配置文件可能还不够,因为它不能保证配置是否在运行时正确使用(可能存在错别字或其他类似错误).
解决方法:
否.单元测试将告诉您测试工具中有哪些有效的工具,并且应该与生产中的工具有所不同.
当您说要验证配置时,您碰到了头.测试和验证是完全不同的两件事.如果您有办法验证生产环境中的运行时配置,它也将帮助您诊断运行时行为异常.
有很多方法可以验证运行时配置.最简单,最好的方法是记录日志(例如“ 2016-09-24 10:13:00连接到http://my-configured-server.example.com以获取用户令牌”).不要只是将配置转储到日志文件中(这不是端到端验证),而是将配置详细信息添加到日志消息中.
配置问题通常是全有或全无.如果您配置不正确,则什么也不会发生,也不知道为什么. (对于函数式编程尤其如此.)日志记录不仅可以告诉您配置是什么,而且可以告诉您配置在什么时候失败.
还有其他一些巧妙的方法可以将配置详细信息散布到运行时中.例如,将详细的运行时详细信息附加到错误消息,尤其是电子邮件比日志更多的地方.或将鼠标悬停在UI元素上的调试模式可以告诉您有关该元素的类和其他事实.
集成测试(组件连接在一起时可以正常工作)和冒烟测试(某些完整的配置可以正确执行某些操作)可能很重要-如果您不进行手动测试进行部署,我会说这是必要的-但它们不能替代运行时验证.
标签:spring-boot,testing,yaml,integration-testing,java 来源: https://codeday.me/bug/20191026/1938884.html