gpt4 book ai didi

java - 如何使用模拟通过单元测试覆盖静态字段?

转载 作者:行者123 更新时间:2023-12-01 16:15:30 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com