有没有办法在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,您可以模拟静态方法 – 这是您应该做的.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |