我只有一种方法。如何检查System.out.println()并将Scanner替换为使用JUnit自动输入值?
PS,请提供一些解决方案…
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = new int[4];
for (int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
for (int i = 0; i < arr.length; i++) {
int res = 0;
int k = 0;
int num = arr[i];
/*.....*/
System.out.println(num);
}
}
理想情况下,提取尴尬的依赖关系,以便您可以在没有依赖关系的情况下进行测试。更改main
为简单:
public static void main(String[] args) {
doWork(new Scanner(System.in), System.out);
}
// TODO: Rename to something meaningful
public static void doWork(Scanner input, PrintStream output) {
// Remainder of code
}
(考虑使用a Writer
代替PrintStream
for output
。)
然后,您实际上不需要进行单元测试main
-但您可以doWork
使用Scanner
基于的进行测试StringReader
,并基于的输出进行测试StringWriter
,从而提供所需的任何输入并检查输出。
问题内容: 通过控制台进行任何输入的数据类型(如我使用BufferedReader类所做的那样)为String。之后,我们将其类型转换为需要查询的数据类型(如Inter.parseInt()为整数)。但是在C语言中,我们可以接受任何输入原始数据类型,而在Java中,所有输入类型都是Neccerily String。为什么是这样? 问题答案: 控制台输入实际上以一系列字节而不是字符串的形式读入。这是
我一直在尝试编码来查找给定数组元素的LCM。我的代码如下 我的问题是,当我输入时,输出控制台会冻结。我尝试了另一种没有while循环的方法。也就是说,消除了while循环,并在最后添加了一个if循环。 但现在编译器抛出一个错误,指出并非所有代码路径都返回一个值。有人能帮我解决代码中的问题吗?我是一名编程初学者。提前谢谢!!
问题内容: 我通过Stata学习了数据操纵和分析,并使用log命令记录了所有写入的命令和生成的输出。这样做可以重现我的发现,检查以前的结果并与其他人共享pdf或txt。在Python中使用什么?如果我使用Python Jupyter Notebook或Spyder有区别吗? 问题答案: 执行所需操作的方法是使用命令,如下所述: 记录IPython输出?
我刚刚开始学习Groovy,正在GroovyConsole中进行实验。 有没有办法读取用户输入?我尝试了下面的代码,但我得到了一个错误。 这是我收到的错误: 有什么我需要进口的吗? 任何帮助都会很好。 谢谢
我想并行运行Junit测试。我遇到了以下问题 这些测试是由其他团队开发的,大约有2500个测试套件。测试和测试框架到处都有静态变量。它们的编写使得它们在一次运行一个套件时可以正常工作。当我构建一组这些测试套件并运行它们时,它们甚至没有完成运行。 为了解决这个问题,我有自己的测试运行程序,它通过不同的类加载器(一次一组测试)加载测试套件。我在多个线程中这样做,并从每个线程调用JunitCore的ru
我在Ant构建脚本中使用JUnit5控制台。但是,它在我的项目中找不到任何测试。 我在终端中使用了以下命令: 其返回: 我得到了与Ant脚本相同的输出: