public class CacheAdder{
private static final int HARD_CACHE;
static {
HARD_CACHE = 22;
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
public int divide(int number, int divider) {
return (int) HARD_CACHE+number/divider;
}
}
当我通过这个示例类模拟并运行测试时,mockito 会跳过静态部分,这是有意义的,因为我模拟了 HARD_CACHE 的值,但同时我希望代码达到 100% 的覆盖率。静态字段是否应该在没有模拟的情况下进行测试?或者有没有办法使用模拟来测试静态字段/方法/变量?
最佳答案
一种方法是使用反射将值设置为静态字段
您可以在这里查看:Mock private static final field using mockito or Jmockit
关于java - 如何使用模拟通过单元测试覆盖静态字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62402257/