Ошибка внедрения конструктора в тестовом классе Play Framework

#java #dependency-injection #playframework

#java #dependency-injection #playframework

Вопрос:

Я получаю ошибку внедрения конструктора в своем приложении. Ранее тот же код работал нормально. Внезапно тест проваливается. Не удалось выяснить основную причину сбоя.

Вот мой код :

Класс AppStartModule

 public class AppStartModule extends AbstractModule {   private final static Logger LOGGER = LoggerFactory.getLogger(AppStartModule.class);    requestStaticInjection(SomeUtil.class);  requestStaticInjection(SomeConstants.class);    bind(SomeConstants.class).asEagerSingleton();  }  

Класс некоторых констант

 @Singleton public class SomeConstants {   @Inject private static Configuration playconfiguration;  @Inject private static SomeUtil someUtil;   @Inject  public SomeConstants(Configuration config, SomeUtil someUtil){   } }  

Класс SomeUtil

 @Singleton public class SomeUtil {  private static Configuration config;   @Inject  public SomeUtil(final Configuration configuration) {  config = configuration;  } }  

Я получаю исключение во время выполнения моего тестового класса :

Некоторый самый простой Класс

 @RunWith(MockitoJUnitRunner.class) public class SomeUtilTest {    private static Application myTestApp;  private static SomeUtil someUtil;  private static Configuration configuration;   @BeforeClass  public static void start() {  try {  Config config = ConfigFactory.parseFile(new File("/some/path/Conf-File.conf"));  config = ConfigFactory.load(config);  configuration = new Configuration(config);  myTestApp = new GuiceApplicationBuilder().  .configure(configuration)  .build();   // below someUtil value is coming as null  someUtil = myTestApp.injector().instanceOf(SomeUtil.class);  Helpers.start(myTestApp);   } catch(Exception e){  // print the exception  }  }   // here I have some test Methods.  }  

When I run the class I am getting the below error :

 [error] SomeUtilTest - DevData = "[Error While initializing app :: Unable to create injector, see the following errors:)  Error injecting constructor, java.lang.NullPointerException at SomeConstants.lt;initgt;(SomeConstants.java:68) at AppStartModule.configure(AppStartModule.java:77)  (via modules: com.google.inject.util.Modules$OverrideModule -gt; AppStartModule) while locating SomeConstants error]"  

I tried to add the below to binders, but no use :

 myTestApp = new GuiceApplicationBuilder()  .configure(configuration)  .bindings((Module) new SomeUtil(configuration))  .bindings((Module) new SomeConstants(configuration, someUtil))  .build();     

Please note that this same code was initially working but failing now. Can anyone please help.