用自定义注释模拟类会引发错误-AnnotationFormatError:尝试为非注释类型创建代理

时间:2019-12-18 18:55:52

标签: java unit-testing mockito powermockito

我正在尝试模拟作为参数发送到要测试的类的构造函数的类。

模拟创建行抛出Java注释错误。 如果删除注释,则模拟成功。

我需要知道为什么无法进行模拟,或者有什么我需要做的不同的事情。

同时尝试了Mockito2和PowerMockito2。两者都导致相同的错误。

代码如下

fs.close(fd)

Stacktrace:

AnnotationClass {
 ....
 MyAnnotationClass {
  ....
 }
}

@MyAnnotationClass
MyFilterClass {
}

SUTClass {
  SUTClass(MyFilterClass filter) {
  }
}

import static org.mockito2.Mockito.*;
import static org.powermock2.api.mockito.PowerMockito.mockStatic;

import org.junit.*;
import org.junit.runner.RunWith;
import org.powermock2.core.classloader.annotations.SuppressStaticInitializationFor;
import org.powermock2.api.mockito.PowerMockito;
import org.powermock2.core.classloader.annotations.PrepareForTest;
import org.powermock2.modules.junit4.PowerMockRunner;
import system.context.IUserContext;
import system.context.UserContext;

import junit.framework.TestCase;

@RunWith(PowerMockRunner.class)
Testclass {
  MyFilterClass filter = mock(MyFilterClass.class); //throws annotation err
}

0 个答案:

没有答案