我有一个单元测试问题,其中一个类有一个静态变量想要加载 Spring 应用程序 Ctx。
这个类不是来自 Bean Factory,我无法改变这个事实。
static ApplicationContext applicationContext = ...;
这工作正常,但很难JMock,或者至少我不知道一种方法,直到我知道 Spring Ctx 想要启动。不适合单元测试情况。
有没有人知道的解决方法?
我可以选择将静态变量更改为我想要的任何内容。
Thanks.
我自己解决了这个问题。
最后真的很简单。只是需要将我的静态包装在一个类中,然后我可以模拟它。
public class ApplicationContextHolder implements ApplicationContextHoldable {
protected static ApplicationContext applicationContext = ...;
@Override
public ApplicationContext getApplicationContext() {
return ApplicationContextHolder.applicationContext;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)