我实现了一个电子邮件系统,我有一个主要的应用程序类,该类正在扫描键盘上的某些输入,而输入不是“ q”时,必须从控制台添加任何命令。问题是如何在不更改主应用程序类的情况下实现测试器类。 (我需要在tester类中使用已经准备好的命令。它们不会显式输入,这意味着当我们测试代码时,输入的准备好的命令将自己拥有)。怎么办呢?还是可能?
我有2种主要方法,不允许使用Junit。
这是测试人员类:
public class CalcTester {
public static void main(String[] args) throws FileNotFoundException {
Scanner scanner =new Scanner(new File("C:\\Users\\burak kaya\\IdeaProjects\\Cacl\\src\\calctest.txt"));
String line ="";
for (int i = 0; scanner.hasNext() ; i++) {
line+=scanner.nextLine();
}
String[] arr =line.split(" ");
CalcApplication.main(arr);
}
应用程序类是这样的:
public class CalcApplication {
static Stack<Integer> number = new Stack<>();
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
String ar =scanner.nextLine();
while(!input.equals("q")) {
if (!input.equalsIgnoreCase("e")) {
if (input.equalsIgnoreCase("s")) {
} else if (input.equalsIgnoreCase("p")) {
} else {
}
} else
break;
}
}
}
我删除了应用程序内部,因为这是不必要的。我的问题是,该应用程序可与扫描仪一起使用。另一方面,测试人员类必须使用预定义的命令来测试此应用程序类。我该怎么办?