gpt4 book ai didi

java - 在单元测试期间重置类静态变量

转载 作者:太空狗 更新时间:2023-10-29 22:39:14 24 4
gpt4 key购买 nike

我正在尝试为旧代码 编写单元测试。我正在测试的类有几个静态变量。我的测试用例类有几个 @Test 方法。因此,它们都共享相同的状态。

有没有办法在测试之间重置所有静态变量?

我想到的一个解决方案是显式重置每个字段,例如:

field(MyUnit.class, "staticString").set(null, null);
((Map) field(MyUnit.class, "staticFinalHashMap").get(null)).clear();

如您所见,每个变量都需要自定义重新初始化。该方法不容易扩展,遗留代码库中有很多这样的类。有什么方法可以一次重置所有内容吗?也许每次都重新加载类(class)?

作为一个可能的好解决方案,我认为是使用类似 powermock 的东西并为每个测试创建一个单独的类加载器。但我看不到简单的方法。

最佳答案

好的,我想我明白了。非常简单。

可以将 @PrepareForTest powermock 的注释移动到方法级别。在这种情况下,powermock 为每个方法创建类加载器。所以它确实满足了我的需要。

关于java - 在单元测试期间重置类静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11829817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com