有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

测试如何测试Java应用程序的输入和输出?

我有一个简单的Java控制台应用程序,希望自动测试其输入/输出。输入总是只有一行,但输出有时不止一行

我该怎么做?(使用Linux shell/Python/Eclipse/Java)


共 (3) 个答案

  1. # 1 楼答案

    在eclipse中,可以使用运行配置设置将控制台输出记录到物理文件中。运行->;运行配置->;选择您的应用程序->;转到“常用”选项卡->;在“标准输入和输出”部分指定物理文件路径

  2. # 2 楼答案

    你可以在Linux中使用管道。例如,像这样运行您的问题:

    java myProgram < input_file > output_file
    

    这将运行myProgram并从input_文件提供输入。所有输出都将写入名为output_file的文件

    现在创建另一个名为expected_file的文件,您应该手动创建该文件,以指定对某些输入(特别是在input_file中的输入)期望的确切输出

    然后,您可以使用diff来比较输出的_文件和预期的_文件:

    diff output_file expected_file
    

    这将输出两个文件之间的任何差异。如果没有差异,则不会返回任何内容。具体来说,如果返回了某些内容,则说明程序无法正常运行(或者测试错误)

    最后一步是用Ruby(:)或Bash(:())等脚本语言链接所有这些命令

    这是进行此类测试最直接的方法。如果您需要编写更多的测试,请考虑使用一些测试框架,如JUnit。p>

  3. # 3 楼答案

    可以使用watch命令执行任何Unix命令。Watch命令将一直执行,直到您通过CTRL+C或终止进程为止

    $ watch -n 5 ls
    

    默认情况下,watch命令使用2秒的间隔,您可以使用-n选项更改它

    或者你也可以在你的。bashrc(来自here

    function run() {
        number=$1
        shift
        for i in {1..$number}; do
          $@
        done
    }
    

    像这样使用它

    run 10 command