[英]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.