我有一个简单的 Java 控制台应用程序,想自动测试它的输入/输出。输入总是只有一行,但输出有时不止一行。
我该怎么做? (使用 Linux shell/Python/Eclipse/Java)
最佳答案
您可以在 Linux 中使用管道。例如,像这样运行您的问题:
java myProgram < input_file > output_file
这将运行 myProgram 并从 input_file 提供输入。所有输出都将写入名为 output_file 的文件。
现在创建另一个名为 expected_file 的文件,您应该手动创建该文件以指定您对某些输入(特别是 input_file 中的输入)期望的确切输出。
然后您可以使用 diff 来比较 output_file 和 expected_file:
diff output_file expected_file
这将输出两个文件之间的任何差异。如果没有差异,则不会返回任何内容。具体来说,如果返回某些内容,则说明您的程序无法正常工作(或者您的测试有误)。
最后一步是用 Ruby (:)) 或 Bash (:()) 等脚本语言链接所有这些命令。
这是进行此类测试的最直接的方法。如果您需要编写更多测试,请考虑使用一些测试框架,例如 junit。
关于java - 如何测试 Java 应用程序的输入和输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9447050/