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

Mar*_*oma 0 java testing

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

我怎样才能做到这一点?(使用Linux shell/Python/Eclipse/Java)

Ole*_*ksi 7

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

java myProgram < input_file > output_file
Run Code Online (Sandbox Code Playgroud)

这将从input_file运行myProgram和feed输入.所有输出都将写入名为output_file的文件中.

现在创建另一个名为expected_file的文件,您应该手工创建该文件以指定您在某些输入上所期望的确切输出(具体来说,您在input_file中的输入).

然后你可以使用diff来比较output_file和expected_file:

diff output_file expected_file
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 您应该注意,管道的使用并非特定于Linux.同样适用于Windows和Mac OS X. (2认同)