2015-06-16 5 views
0

Я пытаюсь написать тестовый пример для метода params в классе ниже.Проблемы с записью тестового примера для частного метода

Проблемы при написании тестового JUnit случай:

Проблема заключается в том, что метод является приватным и внутри метода он требует супер методов класса. Я попытался с помощью EasyMock, где я смогу подавить вызовы супер конструкторах класса

CustomListener customListenerMock=createMock(CustomListener.class); 
    expect(customListenerMock.getParam("CHECK_INTEGRITY")).andReturn(null); 
    expect(customListenerMock.getParam("WRITE_ANSWER")).andReturn(null);  

В документе говорится, что я буду в состоянии подавить эти методы, когда они называются и может дать указанный выходной т.е. нуль в этом дело.

Теперь моя проблема в том, как я могу использовать частный метод тестирования? Я попытался использовать API отражения, но он не работает по желанию.

код:

Method InitialiseSecurityConfiguration = Listener .class.getDeclaredMethod(methodToTest, null); 
    InitialiseSecurityConfiguration.setAccessible(true); 
    InitialiseSecurityConfiguration.invoke(fileListenerObj); 

Когда я взываю с отражением API, эти методы называются так же, как это и супер CLAs методы не подавляются, как хотелось бы.

Примечание: Я использую устаревшее приложение и не разрешено изменять видимость моих методов.

class Listener extends CustomListener{ 

/* 
     Some More methods 
*/ 

private boolean params() 
     { 
     String integrity = ""; 
     String sWAnswer = ""; 
     try 
     { 
      try 
      { 
      integrity = super.getParam("CHECK_INTEGRITY"); 
      sWAnswer = super.getParam("WRITE_ANSWER"); 


      **Some Business Logic** 

      super.info("Request Directory : " + sRequestPath); 
      super.info("Response Directory : " + sResponsePath); 
      super.info("Error Directory : " + sErrorPath); 
      } 
     } 
     catch (Exception ex) 
     { 
      bCheck = false; 
     } 
     return bCheck; 

       }//closing the method params 
}//Closing Listener class  

ответ

3

Я бы писать тесты для публичных методов, которые называют частный метод вас интересует.

Как правило, это хорошая практика, чтобы писать тесты против публичного API класса так что реализация (т.е. частные методы) может быть изменена без необходимости изменения тестов.

Публичный API - это способ использования класса, поэтому это то, что нужно протестировать.

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

  • Нет связанных вопросов^_^