首页 > 解决方案 > 我应该如何更改 JUNIT 中布尔变量的值?

问题描述

public ClaimEntity create(ClaimEntity entity) {

    if (isBillEstimationActive) {
        return be_save(entity, BE_INSERT, new GeneratedKeyHolder());
    }

    return save(entity, INSERT, new GeneratedKeyHolder());
}

并且布尔变量被设置在类的开头

private boolean isBillEstimationActive = false;

我想调用be_save,除非它的 bool 值为 true,否则它不会被调用。我应该如何在我的测试用例中实现它。

标签: spring-bootjunitboolean

解决方案


我猜你只需要在测试之前将你的私有布尔字段设置为 true。如果您没有其他类似的情况,您应该使用 Java 反射。

这是一个假设您的代码来自ClaimRepository类的示例:

ClaimRepository repository = new ClaimRepository();
Field field = ClaimEntity.getDeclaredField(isBillEstimationActive);
field.setAccessible(true);
field.set(repository, true);

您也可以看看这个答案:如何测试私有函数或具有私有方法、字段或内部类的类?


推荐阅读