java - 如何配置测试套件始终将常量注入到所有类实例的@value私有字段中
问题描述
我们继承了一组测试最少的大型代码。我正在寻找更新和创建测试。
我们有一个简单的 bean,它有一个使用 @value 注入常量的私有字段。这个 bean 是由许多使用私有 @value 的代码构建和传递的。我想设置一个测试套件,以始终将一些常量注入到任何实例化版本的 bean 的 @value 中。
我知道如何将 @value 注入单个 bean,但考虑到 bean 在我的测试中被 spy 实例化的频率,我不想在每种情况下都注入模拟并将 @value 注入该模拟,我宁愿在课堂上这样做。
我知道在私有变量上滥用 @value 是不好的。我们希望在某个时候解决这个问题,但是在这一点上,如果我可以避免的话,我不想为一个无法测试的庞然大物的类的复杂数量的构造函数搞乱。我现在想要一种在私有字段上测试@value 的方法,一旦我们拥有更稳定/可测试的代码库,我将考虑稍后如何使用@value。
我可以配置这个注入,让它自动发生在类的所有实例化实例上吗?
解决方案
创建一个包含您的正常配置的自定义测试配置,并将间谍定义为其中的 bean,并在其中使用 @Primary 并注入自定义 @Value 值。您可以将其作为类文件直接包含在您的测试文件夹中。这样,在 spring 上下文自动装配的任何地方,它都会从测试配置中获取一个,而不是在您的正常上下文中定义的那个。
推荐阅读
- react-native - react-Native 获取照片的创建日期
- android - 如何使用编码 utf8 在 Kotlin 中解析 XML?
- javascript - 调用同一文件中的测试函数
- php - 如何在 MySQL 数据库中存储各种单词形式?
- powerbi - 如何在 Power BI 中显示和隐藏饼图
- c++ - 编译器中的哪个程序负责预处理器?
- c# - 测试列表结果
- python - 转换具有不同值的有序字典
- android - how to adjust the borders for hexagon shape to imageview
- javascript - 多个 onClick 选择器究竟是如何按时间工作的?