Можете ли вы запустить JUnit Tests для приложения CLI? - PullRequest
0 голосов
/ 07 января 2020

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

  1. Регистрация
  2. Вход. , , Et c et c.

Если он решит войти в систему, он будет переведен в метод Register (), который запрашивает такие данные, как имя и фамилия, внутри самого метода. Я хочу знать, есть ли способ имитировать пользовательский ввод при создании модульных тестов или мне нужно переопределить методы, чтобы я мог передавать значения через аргументы и выполнять модульное тестирование таким образом.

1 Ответ

1 голос
/ 07 января 2020

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

Например, вместо того, чтобы иметь глобальный Scanner и что-то вроде следующего, что делает метод зависимым от метода ввода

public void login() {
    String username = scanner.nextLine();
    // check that the username is valid
}

, более тестируемый метод без каких-либо зависимостей от метода ввода будет

public void login(String username) {
    // check that the username is valid
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...