junit - PowerMock测试-设置类的静态字段

标签 junit static mocking powermock

我很难找到设置类的静态字段的方法。基本上是这样的:

public class Foo{
    // ...
    private static B b = null;
}

其中 B 是另一个类。

除了使用 setInternalStateFromContext() 之外,在 PowerMock 中还有其他方法可以做到这一点吗?使用上下文类方法设置一个字段似乎有点大材小用。

谢谢。

最佳答案

Whitebox.setInternalState(Foo.class, b);

只要设置非空值即可工作,并且如果只有一个类为 B 的字段。如果您不能依赖这种奢侈,则必须提供字段名称并将 null 转换为您想要设置的类型。在这种情况下,您需要编写如下内容:

 Whitebox.setInternalState( Foo.class, "b", (B)null );

关于junit - PowerMock测试-设置类的静态字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5385161/

相关文章:

java - 如何编写单元测试来检查复制构造函数是否与类属性同步?

c++ - 从 WndProc 调用非静态成员

PHP使数据库类静态化

python - 在 autospeccing 时模拟 side_effect 为函数提供额外的参数

python - 如何替换被测模块的文件访问引用

java - 使用 ServerSocket 类对方法进行单元测试的最佳方法是什么?

android - 在 Android Studio 2.0 中出现渲染问题并且无法解决 R,为什么会出现以及如何解决这些问题?

java - 如何将 Static ListableBeanFactory 与 ClassPathXmlApplicationContext 连接起来?

java - 无法在 Spring 3.2.8 和 junit 4.4 中 Autowiring 现场执行 Junit 测试

c++ - 如何在 header 和 cpp 之间拆分静态/模板类?