【问题标题】:How to unit test aop(aspect class)如何对aop进行单元测试(方面类)
【发布时间】:2012-06-20 16:44:24
【问题描述】:

如何使用 JUnit4 对以下方法进行单元测试??

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;
}

【问题讨论】:

  • 像这样在顶部声明变量会使事情变得更难阅读。 null你怎么不查serviceContext
  • 其实我们是在声明serviceContext,值会来自baseServiceRequest.getServiceContext();使用连接点

标签: junit aop aspectj


【解决方案1】:

我不知道这是否是您想知道的,因为问题有点不清楚,但是如果您想知道如何模拟生产方面用于单元测试的对象,您可以使用另一个方面 - 让我们调用它是元方面或测试方面 - 为了做到这一点。我已经在How to mock an aspect 下描述了一种方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2011-09-17
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2014-10-08
    相关资源
    最近更新 更多