Тестирование метода, который использует список объектов частного статического класса - PullRequest
0 голосов
/ 25 июня 2018

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

Class Invoker{

   public String method1(String inp){

   ArrayList<InnerClass> params = new ArrayList<>();
   params.add(new InnerClass("some value"));
   String op = method2(params);
   //other implementation
  }

   public String method2(ArrayList<InnerClass> list){

     //method implementation
  }

   private static class InnerClass {
      private String var1;

          public InnerClass(String str){
          super();
          this.str = str;
         }
   }
}

Теперь я хочу написать контрольный пример для метода 'method1'. Проблема, с которой я сталкиваюсь, заключается в том, что во время тестирования я не могу создать ArrayList в тестовом классе.

1 Ответ

0 голосов
/ 25 июня 2018

Вы идете по неправильной кроличьей норе.

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

Использование имени класса в сигнатуре публичного метода просто не имеет смысла.

Конечно, теоретически вы можете использовать отражение дляОбойти это (пока, возможно, модули Java 9 не встанут у вас на пути), но, как уже было сказано: делать это - пустая трата времени.

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

...