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

使用Spring框架的单例bean进行单元测试

  •  3
  • Glide  · 技术社区  · 15 年前

    人们普遍认为singleton不利于单元测试。

    但是,如果有一个类似于Spring框架的IOC容器来控制缺省情况下是单例的bean呢?在类中使用这些bean是否也被认为是不利于单元测试的,就像singleton一样?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Nathan Hughes    14 年前

    在Spring中如何处理单例的要点是单例中没有限制如何调用的代码,它只是一个pojo。Spring负责确保每个人都得到相同的实例。这意味着,如果你想为它编写一个单元测试,你的测试根本不需要使用Spring,测试可以像其他任何POJO一样实例化singleton作为测试设置过程的一部分,并且测试代码可以插入mock作为它的依赖项。

    因为singleton中的代码强制实现了它的singleton特性,所以很难进行测试,因为Spring不再是一个问题。

        2
  •  5
  •   skaffman    15 年前

    独生子女是 一件坏事。它们是非常好的东西。

    这个 Singleton Design Pattern 但是,通常被认为是不好的,因为它会妨碍测试。

    当你有一个像Spring这样的IOC框架来管理你的单件工作时,你就没事了。

    春天证明了 unit testing framework 它在测试生命周期中管理单例。