繁体   English   中英

如何使用模拟单元测试覆盖 static 字段?

[英]How to cover static fields with unit tests using mock?

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;
    }
}

当我通过这个示例 class 模拟和运行测试时,mockito 跳过了 static 部分,这是有道理的,因为我通过代码模拟了 HARD_CACHE 的值,但同时我想要 1% 的覆盖率。 是否应该在没有模拟的情况下测试 static 字段? 或者有没有办法使用模拟测试 static 字段/方法/变量?

一种方法是使用反射将值设置为 static 字段

您可以在这里查看: 使用 mockito 或 Jmockit 模拟私有 static 最终字段

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM