java - 使用 ReflectionTestUtils 模拟静态类

标签 java unit-testing junit mockito spring-test

我正在为一个使用静态类ProcessTimer的类编写单元测试。准确地说,ProcessTimer.startTimer()

我正在寻找一种方法来模拟此调用。我以前使用过普通的 ReflectionUtils 和 PowerMock,但我想知道是否可以使用来自 Spring 的 ReflectionTestUtils 来做到这一点。

如果可能的话,我可以删除 PowerMock 依赖项并重写一些其他测试。非常感谢任何帮助!

最佳答案

ReflectionTestUtils 不适用于模拟。相反,它仅用于设置/读取非公共(public)字段并调用非公共(public)方法。

如果您想模拟静态方法返回的内容,您将必须使用专用的模拟框架 - 例如,像您一样的 PowerMock 之类的东西提到过。

问候,

Sam(ReflectionTestUtils 的作者)

关于java - 使用 ReflectionTestUtils 模拟静态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48431999/

相关文章:

javascript - Angular : How to spy on $element. 开启

Java - 为什么将 "null"分配给变量不会使其可用于 GC? (在此代码段中)

java - Java 中搜索和排序算法的高效实现

java - 如何从输入文件一次读取两行并将它们添加到对象中?

unit-testing - 表驱动测试的子集

java - 如何在 Android 单元测试中模拟 Bundle 方法?

Java正则表达式在字符串中查找 "["的实例

java - 从java类中删除测试代码

java - Powermock:静态接口(interface)方法给出未完成的 stub 异常

安卓单元测试: How to mock an object which contains MutableLiveData but only exposes LiveData?