我有一个init()方法,它使用注入的私有实例<>。如何使用JUnit或Mockito测试此类?我试图制作一些假类并将它们添加到列表中并将此列表设置为我的私有字段但是我有这个错误
java.lang.IllegalArgumentException:无法设置javax.enterprise.inject.Instance字段......
MyClass是:
@Singleton
@Startup
public class HandlerManager {
@Any
@Inject
private Instance<RollbackHandler<RollbackData>> handlers;
private RollbackHandler<RollbackData> rollbackHandler;
@PostConstruct
public void init() {
for (RollbackHandler<RollbackData> bean : handlers) {
//do something
}
}
}
除非您使用自定义工作,否则框架不会处理任何注释。您必须使用@Mock在测试中将所有这些依赖项定义为模拟,并在测试方法(如setup())之前调用injectMocks()。这是一个多部分问题。