代码之家  ›  专栏  ›  技术社区  ›  dsollen

如何配置testsuit以始终将常量注入类的所有实例的@value private字段

  •  0
  • dsollen  · 技术社区  · 7 年前

    我们继承了一个大型的代码套件,该套件具有最少的测试。我正在寻找更新和创建测试。

    我们有一个简单的bean,它有一个私有字段,使用@value注入常量。这个bean由许多使用私有@值的代码段构造和传递。我想做一套测试服 总是 为bean的任何实例化版本向@值中注入一些常量。

    我知道如何将@值注入 single bean ,但考虑到在我的测试中spy实例化bean的频率,我不想在每种情况下都必须注入mock和@value到该mock中,我宁愿在类级别上这样做。

    我知道在私有变量上滥用@值是不好的。我们希望在某个时候能够解决这个问题,但在这一点上,如果可以避免的话,我不想为一个不稳定的庞然大物类处理复杂数量的构造函数。我现在想在私有字段上测试@value,一旦我们有了更稳定/可测试的代码库,我将考虑以后如何使用@value。

    我是否可以配置此注入,使其自动发生在类的所有实例化实例上?

    0 回复  |  直到 7 年前
        1
  •  1
  •   Taugenichts    7 年前

    创建一个包含正常配置的自定义测试配置,并将spy定义为一个bean,其中包含@Primary和注入的自定义@Value。您可以将其作为类文件直接包含在测试文件夹中。这样,无论它在哪里被spring上下文自动连接,它都将从测试配置中获得一个,而不是在正常上下文中定义的一个。