Java 为受保护类编写mockito测试用例

Java 为受保护类编写mockito测试用例,java,mockito,powermockito,Java,Mockito,Powermockito,我正在处理一个用Java的大项目,我是Java的新手。我的任务是对某段代码进行正确的mockito单元测试。我已经学习了mockito和Junit的基础知识,但是这个项目相当大,我编写的代码对我来说不起作用。这是班级结构 此文件位于ProjectName/src/com.package.packageName/ada中/ //java 公车{ 私人xyzClient xyzClient; 私有映射MPR;//Make是一些遗留类 私有静态ConcurrentMap CMP=新Concurren

我正在处理一个用Java的大项目,我是Java的新手。我的任务是对某段代码进行正确的mockito单元测试。我已经学习了mockito和Junit的基础知识,但是这个项目相当大,我编写的代码对我来说不起作用。这是班级结构

此文件位于ProjectName/src/com.package.packageName/ada中/


//java
公车{
私人xyzClient xyzClient;
私有映射MPR;//Make是一些遗留类
私有静态ConcurrentMap CMP=新ConcurrentHashMap();
公共汽车(最终地图MPR,最终XYZ客户XYZ客户){
this.MPR=MPR
this.xyzclient=xyzclient
}
@测试可见
受保护的XYZ getClient(最终长标识){
CMP.ComputeFabSent(标识,(id)->{
最终制作;
如果MPR.CONTANSKEY(id){
make=MPR.get(id)
}
否则{
make=AllConstants.allMap.get(ABC.getRegions().getyear())
//AllConstants是constants文件夹中的java文件,其中包含从ABC.getRegions.getyear()获取输入的allMap hasmap
}
最终XYZ ans=xyzclient.getInfo(“修复字符串”,make)
返回ans
});
返回CMP.get(标识)
}
}
现在我的目标是为上述程序编写mockito测试用例。我尝试了几种方法,其中一种方法如下

公共类卡特斯特{
专用静态最终长标识=1;
私有静态最终字符串foo='foo'
@注射毒品
私家车;
@嘲弄
私有地图MRP;
@嘲弄
制造;
@嘲弄
xyzClient xyzClient;
@嘲弄;
XYZ-XYZ;
public void setUp()引发异常{
MRP=新HashMap();
MRP.put(标识、新品牌(foo))
initMocks(this)
汽车=新车(MRP,XYZ客户)
}
public void testgetClient(){
when(MRP.containsKey(eq(identification))。然后返回(true);//因此如果执行了分支
doReturn(xyz).when(xyzClient.getInfo(“someString”,newmake('foo'))
car.getClient(1);
}
}
我的主要目的是测试该程序是否以这种方式覆盖if和else的分支。那我该怎么做呢?另外,我如何模拟包含allMap的Allcontants类呢?我非常感谢您的帮助,因为我从上一周开始就一直在努力解决这个问题