如何使用 JMock 在 java 中模拟静态变量

2024-01-12

我有一个单元测试问题,其中一个类有一个静态变量想要加载 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(使用前将#替换为@)

如何使用 JMock 在 java 中模拟静态变量 的相关文章

随机推荐