我正在尝试使用JUnit和Mocktio为类创建UnitTest。在此类中,从一个单例中有多次对方法的调用,例如
Singleton.getInstance().doSomething(value);
我知道价值的类型。(构造函数中没有参数,也没有任何用于处理单例引用的方法)是否可以模拟单例?我的第一个想法只是调用Mockito.mock(Singleton.class)并将其作为参数传递,但是随后我必须更改此类以接受单例作为参数-这对我来说没有意义。
(我同意这可能是设计缺陷,但是目前我无法重构该单例的用法)。
这里的问题是Mockito不允许模拟静态方法(getInstance
)。但是JMockit
,Powermock
两者都允许这样做。
使用Mockito的另一种方法可能取决于中的代码getInstance
。如果这是检查/返回字段,则可以使用反射将字段分配给模拟实例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句