如何测试使用外部命令行工具的软件

JtR*_*JtR 1 ruby tdd

我试图弄清楚如何测试驱动软件启动外部进程,将文件路径作为输入并在长时间处理后写入输出到stdout或某个文件?在这种情况下编写测试有一些共同的模式吗?很难创建快速执行的测试,可以验证外部工具的正确使用,而无需在测试中启动实际工具并检查结果.

Dav*_*ave 5

您可以记住(http://en.wikipedia.org/wiki/Memoization)外部流程.在Ruby中编写一个包装器,它计算输入文件的md5总和,并根据已知校验和的数据库进行检查.如果匹配1,则复制右侧输出; 否则,正常调用该工具.