spring-boot - 我应该如何更改 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,否则它不会被调用。我应该如何在我的测试用例中实现它。
解决方案
我猜你只需要在测试之前将你的私有布尔字段设置为 true。如果您没有其他类似的情况,您应该使用 Java 反射。
这是一个假设您的代码来自ClaimRepository
类的示例:
ClaimRepository repository = new ClaimRepository();
Field field = ClaimEntity.getDeclaredField(isBillEstimationActive);
field.setAccessible(true);
field.set(repository, true);
您也可以看看这个答案:如何测试私有函数或具有私有方法、字段或内部类的类?
推荐阅读
- selenium - 如何拖放以偏移硒测试中的元素,以便它可以在 FireFox 上运行
- c# - OWIN + Ninject w/ UseNinjectMiddleware 不处理
- javascript - RegEx 用于匹配仅由字母列表组成的单词
- python - 按日期范围查询对象 - 错误 - {TypeError}预期的字符串或类似字节的对象
- c - 读取 readelf -wi 的输出,为什么有的局部变量有 DW_AT_location 值,而有的没有?
- r - 汇总分组数据框,同时维护所有作为因子向量的列
- wso2 - 不同租户的无效赠款
- javascript - 我试图保持 document.getElementById("image").src=UserInput +".gif" 的值
- graphql - Apollo Client:apollo-link-rest 可以解决端点之间的关系吗?
- c# - ORMLite 中的 ServiceStack 如何对父表进行简单引用?