java - 需要模拟 JoinPoint 进行 JUnit 测试

标签 java spring testing junit

我需要模拟 Spring Java JoinPoint 来进行 JUnit 测试。请参阅下面的代码。

/**
     * Pointcut that matches all Spring beans in the application's main packages.
     */
    @Pointcut("within(com.cybersite.repository..*)"+
        " || within(com.cybersite.service..*)"+
        " || within(com.cybersite.web.rest..*)")
    public void applicationPackagePointcut() {
        // Method is empty as this is just a Pointcut, the implementations are in the advices.
    }

    /**
     * Retrieves the {@link Logger} associated to the given {@link JoinPoint}.
     *
     * @param joinPoint join point we want the logger for.
     * @return {@link Logger} associated to the given {@link JoinPoint}.
     */
    private Logger logger(JoinPoint joinPoint) {
        return LoggerFactory.getLogger(joinPoint.getSignature().getDeclaringTypeName());
    }

有人知道我如何创建模拟 JoinPoint 吗?

最佳答案

JoinPoint joinPoint = mock(JoinPoint.class);
        MethodSignature signature = mock(MethodSignature.class);
        String typeName = "some name";

        when(joinPoint.getSignature()).thenReturn(signature);
        when(joinPoint.getSignature().getDeclaringTypeName()).thenReturn(typeName);

关于java - 需要模拟 JoinPoint 进行 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63567595/

相关文章:

java - 我可以在 Spring 解析器中返回 RuntimeBeanReference 吗?

testing - Symfony2 演示测试问题

ruby-on-rails - 这是一个很好的书面测试还是很丑陋?

java - 如何在Java中安全地将时间转换为unix时间戳?

java - 如何解释以下正则表达式?

spring - 在 gradle 多项目中使用 kapt 和 spring-boot-configuration-processor

java - 在 Spring 发送电子邮件

javascript - React Native 异步 Jest 组件测试

java - 为什么这个方法不使用对象的任何属性?

java - OSGi DS 服务配置和 ServiceTracker