2012-06-20 38 views
1

如何使用JUnit4對以下方法進行單元測試?如何對單元測試aop(方面類)

public Object invoke(ProceedingJoinPoint joinPoint) throws Throwable { 
    Object serviceObject = null; 
    BaseServiceRequest baseServiceRequest = null; 
    ServiceContext serviceContext = null; 

    baseServiceRequest = (BaseServiceRequest) joinPoint.getArgs()[0]; 
    if (baseServiceRequest == null) 
     ExceptionHandlerUtil.createExceptionType("SL","BaseServiceRequest cannot be empty", new Object[] {}); 

    serviceContext = baseServiceRequest.getServiceContext(); 
    ExceptionHandlerUtil.createExceptionType("SL","ServiceContext cannot be empty", new Object[] {}); 
    createServiceInvocationInterceptor(baseServiceRequ est,joinPoint); 

    serviceObject = getServiceObject(serviceContext, joinPoint); 
    serviceContext.getMethodInvocationEvent().setReturnValue(serviceObject); 

    return serviceObject; 
} 
+0

在頂部聲明變量會使事情變得更加難以閱讀。你爲什麼不檢查'null'的'serviceContext'? –

+0

其實我們聲明瞭serviceContext,這個值會來自baseServiceRequest.getServiceContext();使用joinPoint – DranzeR

回答

0

我不知道這是否是你想知道,因爲這個問題是怎麼樣的不清楚,但如果你想知道如何嘲笑單元測試使用的生產方面的對象,你可以用另一種方面 - 讓我們稱之爲元方面或測試方面 - 爲了做到這一點。我已經描述了一種在How to mock an aspect下執行此操作的方法。