加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

有没有办法在Java中重新初始化一个静态类?

发布时间:2020-12-14 05:14:36 所属栏目:Java 来源:网络整理
导读:我试图单元测试引用另一个类的静态数据的类.我不能“不”使用这个静态类,但是显然运行多个测试已经成问题了.所以我的问题是这个.在junit测试中有没有办法重新初始化静态类?那样一个测试不会受到以前的测试的影响? 所以换句话说有一些这样做: Foo.setBar("
我试图单元测试引用另一个类的静态数据的类.我不能“不”使用这个静态类,但是显然运行多个测试已经成问题了.所以我的问题是这个.在junit测试中有没有办法重新初始化静态类?那样一个测试不会受到以前的测试的影响?

所以换句话说有一些这样做:

Foo.setBar("Hello");

// Somehow reinitialize Foo

String bar = Foo.getBar(); // Gets default value of bar rather than "Hello"

不幸的是,我不能改变Foo,所以我被卡住了.

编辑看来,我使我的例子有点太简单了.在实际代码中,“Bar”由系统属性设置,并设置为内部静态变量.所以一旦它开始运行,我不能改变它.

解决方法

如果您使用PowerMock,您可以模拟静态方法 – 这是您应该做的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读