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

时间:2010-07-01 10:17:49

标签: java unit-testing spring singleton

普遍的共识是Singleton不利于单元测试。

但是,如果有一个像Spring框架这样的IoC容器来控制你的bean默认是单例的呢?在你的类中使用那些bean也被认为对单元测试不利,就像单身一样吗?

2 个答案:

答案 0 :(得分:5)

单身者是坏事。他们是一件好事。

然而,Singleton Design Pattern通常被认为是不好的,因为它可能妨碍测试。

当你有一个像Spring这样的IoC框架来管理你的单身人士时,你很好。

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

答案 1 :(得分:2)

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

这是单身人员强制执行其单身人士的代码,这使得难以测试,而Spring不再是一个问题。