Цель довольно проста. Возможность тестирования очень простого командного интерпретатора.
В настоящее время я использую 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);
}
}
}