首页 > 解决方案 > 对象不是 JUnit 中声明类的实例

问题描述

我想为此代码创建 JUnit 类:

@Component
public class ReportingProcessor {

    @EventListener
    private void collectEnvironmentData() {
    }
}

我试过这个用再膨胀实现这个Junit测试:

public class ReportingTest {

    @Test
    public void reportingTest() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {

         Method m = ReportingProcessor.class.getDeclaredMethod("collectEnvironmentData", null);
         m.setAccessible(true);
         m.invoke(this);               
    }
}

但我得到错误:

java.lang.IllegalArgumentException: object is not an instance of declaring class
    at org.datalis.rest.api.server.reporting.ReportingTest.reportingTest(ReportingTest.java:15)

你知道我该如何解决这个问题吗?

标签: java

解决方案


这个答案可能会对您有所帮助,您正在测试一个 Spring Bean。为了获得更好的支持,您应该查看 Spring 测试指南:

如何测试 Spring @EventListener 方法?


推荐阅读