2013-03-23 3 views
0

Это код сервлета. Я понятия не имею, как обмануть его насмешкой. Я создал mock objecs, такие как ServletConfig, LoginServiceFactory и LoginService, но я не знаю, как создать mock для Class.forName. Это вызванный статический метод и другие методы, такие как newInstance или getConstructor. Я попытался вызвать lsf.getClass(). NewInstance() ожидает в mock, но это не сработало. У вас есть идея, как его решить? Заранее спасибо.Отражение сервлета EasyMock

public void init(ServletConfig config) throws ServletException { 
     super.init(config); 
     try { 
      String loginServiceFactoryName = config 
        .getInitParameter("LoginServiceFactory"); 
      LoginServiceFactory lsf = (LoginServiceFactory) 
      Class.forName(loginServiceFactoryName).getConstructor().newInstance(); 
      UserDataBase db = lsf.getUserDataBase(); 
      Encoder encoder = lsf.getEncoder(); 
      loginService = new LoginService(db, encoder); 

} 

ответ

0

Теперь я знаю ответ на эту проблему, я должен создать реализацию LoginServiceFactory и поиск ее отражения так в параметре инициализации будет имя моего класса реализует интерфейс ведьма LoginServiceFactory.

Смежные вопросы