Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 朱尼特和莫基托_Unit Testing_Mockito - Fatal编程技术网

Unit testing 朱尼特和莫基托

Unit testing 朱尼特和莫基托,unit-testing,mockito,Unit Testing,Mockito,我正在用Mockito测试一个Spring impl类 有一个对返回void的方法的调用 但是该方法(addCruiseMessages)正在返回NullPointerException,因为它调用了一个属性文件 我怎样才能成功地测试它 Impl类: @Path(CruisePricingConstants.SAVE_CRUISE_RESTRICTION) public Integer saveCruiseRestrictionDetails (List<CruisePricingCrui

我正在用Mockito测试一个Spring impl类

有一个对返回void的方法的调用

但是该方法(
addCruiseMessages
)正在返回
NullPointerException
,因为它调用了一个属性文件

我怎样才能成功地测试它

Impl类:

@Path(CruisePricingConstants.SAVE_CRUISE_RESTRICTION)
public Integer saveCruiseRestrictionDetails (List<CruisePricingCruiseDetailsVO> cruiseDetailsVOs){
    List<MessageVO> messageVOs = new ArrayList<MessageVO>();


    MessageVO message = null;

   for(CruisePricingCruiseDetailsVO  cruisePricingCruiseDetailsVO : cruiseDetailsVOs)
   {
       int listLength = cruisePricingCruiseDetailsVO.getViewImpactedCruisesDefinintionVOs().size();
       if(listLength > CruisePricingConstants.ONE)
       {
           Set<CruisePricingViewImpactedCruisesDefinintionVO> set = new HashSet<CruisePricingViewImpactedCruisesDefinintionVO>()  ;
           set.addAll(cruisePricingCruiseDetailsVO.getViewImpactedCruisesDefinintionVOs());
           if(set.size()<listLength)
           {
               message = new MessageVO("msg.searchAndListViewImpactedCruisesWidget.duplicateRecordExist", SproutUtil.getMessage("msg.searchAndListViewImpactedCruisesWidget.invalidCombination"), ErrorSeverity.ERROR);
               messageVOs.add(message);
               WebExceptionUtil.addMessagesToResponse(messageVOs);
               return CruisePricingConstants.ONE;
           }
       }
   }

    LOGGER.debug("CruisePricingViewImpactedCruisesServiceImpl :: saveCruiseRestrictionDetails :: Entry");

    Integer rateID = viewImpactedCruisesComponent.saveCruiseRestrictionDetails(cruiseDetailsVOs);
    if(rateID==CruisePricingConstants.ONE){   
        addCruiseMessages();
        }
    LOGGER.debug("CruisePricingViewImpactedCruisesServiceImpl :: saveCruiseRestrictionDetails :: Exit");
    return rateID;

}
@Path(CruisePricingConstants.SAVE\u CRUISE\u限制)
公共整数saveCruiseRestrictionDetails(列出cruiseDetailsVOs){
List messageVOs=new ArrayList();
MessageVO message=null;
适用于(CruisePricingCruiseDetailsVO CruisePricingCruiseDetailsVO:cruiseDetailsVOs)
{
int listLength=cruisePricingCruiseDetailsVO.GetViewImpactedCruisesDefinitionVos().size();
如果(listLength>CruisePricingConstants.ONE)
{
Set=newhashset();
set.addAll(cruisePricingCruiseDetailsVO.GetViewImpactedCruiseDefinitionVos());

如果(set.size()如果
SproutUtil.getMessage
是导致问题的方法,那么您必须:

1)提取到getter方法:

public String getMessage(String message) {
    return SproutUtil.getMessage(message);
}
2)更改实现,使其调用getter,而不是显式调用静态util:

message = new MessageVO("msg.searchAndListViewImpactedCruisesWidget.duplicateRecordExist"
,getMessage("msg.searchAndListViewImpactedCruisesWidget.invalidCombination"), ErrorSeverity.ERROR);
3)用Spy注释CruisePricingViewImpactedCruiseComponent(我相信有些方法实际上是您想要调用的):

4)模仿吸气剂

when(cmp.getMessage(Mockito.any(String.class))).thenReturn("anyString");

试试看。

你能粘贴你得到的错误并粘贴引发异常的方法的代码吗?除了有问题的方法外,其他方法的代码都有没有帮助。Messagevo MVO=new messagev这里是导致异常的junit方法:Public void getMessage(){messageVOs=new ArrayList();message=new MessageVO(“msg.searchAndListViewImpactedCruisesWidget.recordMergedSuccessfully”,SproutUtil.getMessage(“msg.searchAndListViewImpactedCruisesWidget.recordSavedSuccessfully”),ErrorSeverity.FINE;messageVOs.add(message);WebExceptionUtil.AddMessageStoreResponse(messageVOs);}nullpointer被抛出到从属性文件获取消息的sproututil类。sproututil是一个java类
@Spy
private CruisePricingViewImpactedCruisesComponent cmp;
when(cmp.getMessage(Mockito.any(String.class))).thenReturn("anyString");