Как вернуть массив для модульного тестирования с помощью JUnit и Mockito? - PullRequest
0 голосов
/ 28 мая 2020

Я тестирую приложение, которое остановится, если не разделит String на String[]. Я использую JUnit и Mockito для тестирования приложения. Я установил значение по умолчанию и фиктивное поведение следующим образом.

String[] exampleStringList = {"exampleElement", "exampleElement"}; when(example.Call()).thenReturn(exampleStringList);

Это создает ошибку java: no suitable method found for thenReturn(java.Util.String[]). Я попытался решить проблему, заменив String[] на List<String>, а затем добавив необходимые элементы. Это создало ту же ошибку, что и выше.

TL; DR; Мне нужно вернуть String[] с элементами, использующими JUnit для целей тестирования, но thenReturn несовместим. Как я могу использовать JUnit и Mockito для возврата массива String[] в тест?

1 Ответ

0 голосов
/ 28 мая 2020

Я попытался воссоздать ваш сценарий,

  1. Определение услуги

    public interface ExampleService {
    boolean doSomething();
    

    }

  2. Реализация

    @Service
    @RequiredArgsConstructor
    public class ExampleServiceImpl implements ExampleService {
    private final ExampleDependantService exampleDependantService;
     @Override
    public boolean doSomething() {
    String[] strings = exampleDependantService.call();
    if(strings.length >0){
        return true;
    }else{
        return false ;
    }
    
     }
    }
    
  3. Зависимость

      @Component
      public class ExampleDependantService {
      public String[] call(){
       return new String[]{"exampleElement", "exampleElement"};
      }
      }
    

4.Тест

       @ExtendWith(SpringExtension.class)
       class ExampleDependantServiceImplTest {
       @Mock
       private ExampleDependantService exampleDependantService;
       @InjectMocks
       private ExampleServiceImpl exampleServiceImpl;

      @Test
      void doSomething_WhenCalled() {
      String[] exampleStringList = {"exampleElement", "exampleElement"};
      when(exampleDependantService.call()).thenReturn(exampleStringList);
      boolean b = exampleServiceImpl.doSomething();
       Assert.assertTrue(b);
      }
      }

5.Выход

enter image description here

...