Тестирование интерпретатора команд Java - PullRequest
0 голосов
/ 11 октября 2019

Цель довольно проста. Возможность тестирования очень простого командного интерпретатора.

В настоящее время я использую TestNG для тестирования Java-приложения, в котором в интерпретаторе находится интерпретатор команд. Но я не могу этого сделать.

Как только приложение запускается, оно входит в цикл, который обрабатывает пользовательский ввод и выбирает, куда идти () и останавливается, только если пользовательский ввод равен "выход" . Метод printHelp () печатает все доступные команды.

Можете ли вы сказать мне, как мне поступить, чтобы проверить метод printHelp () таким образом, чтобыимитировать ввод данных пользователем и получать правильный вывод.

Примечание: Предположим, что метод printHelp () должен печатать строку "Вся информацияrequired ".

Зависимость maven, а также главный класс приведены ниже.

pom.xml

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.0.0</version>
    <scope>test</scope>
</dependency>

Основной класс Java

public static void main(String args[]){
    menu();
}
private static void menu() {
    Scanner in = new Scanner(System.in);
    String[] fullLine;
    StringConst.CMDS cmd; //enum of prossible cmds

    do {
        System.out.print(StringConst.PROMPT); //aesthetic
        fullLine = in.nextLine().toUpperCase().split(" ");
        cmd = StringConst.CMDS.fromString(fullLine[0]);

        switch (cmd) {
            (...)
            case HELP:
                printHelp();
                break;
            case EXIT:
                System.out.println("Exiting...");
                break;
            default:
                System.err.println(StringConst.NOT_FOUND);
                break;
        }

    } while (!cmd.equals(StringConst.CMDS.EXIT));
}

private static void printHelp() {
    for (StringConst.CMDS cmd : StringConst.CMDS.values()) {
        System.out.println(cmd + " - " + cmd.getDescription());
    }
}

Класс StringConst

public class StringConst {

    public static final String NOT_FOUND = "Command not found... Please try again.";
    public static final String PROMPT = "> ";

    public enum CMDS {
        HELP, EXIT, OTHER;

        private String description;

        static {
            HELP.description = "Prints each command's function";
            EXIT.description = "Exits the program";
        }

        public String getDescription() {
            return description;
        }

        public static CMDS fromString(String temp) {
            return CMDS.valueOf(temp);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...