测试与验证
测试是各种软件开发(包括脚本)中的重要步骤。 开源界有句话叫“早发布,常发布”,就反映了这个事实。 通过尽早和经常发布,软件可以得到更多的使用和测试机会。
经验表明,如果在开发周期的早期发现错误,则更容易找到,修复成本也低得多。
在第 26 章中,我们看到了如何使用存根来验证程序流程。 从脚本开发的最早阶段开始,它们就是检查我们工作进度的宝贵技术。
让我们看看上面的文件删除问题,看看如何编码以便于测试。 测试原始代码片段会很危险,因为它的目的是删除文件,但我们可以修改代码以使测试安全:
如果 [[ -d $dir_name ]]; 那么如果 cd $dir_name; 然后
回音 R M * # 测试
其他
echo "无法 cd 到 '$dir_name'" >&2 exit 1
其他
echo "没有这样的目录:'$dir_name'" >&2 exit 1
fi
退出 # 测试
如果 [[ -d $dir_name ]]; 那么如果 cd $dir_name; 然后
回音 R M * # 测试
其他
echo "无法 cd 到 '$dir_name'" >&2 exit 1
其他
echo "没有这样的目录:'$dir_name'" >&2 exit 1
fi
退出 # 测试
由于错误条件已经输出了有用的消息,我们不必添加任何消息。 最重要的变化是放置一个 回音 命令就在 rm 命令允许显示命令及其扩展的参数列表,而不是实际执行的命令。 此更改允许安全执行代码。 在代码片段的末尾,我们放置一个 出口 命令来结束测试并阻止脚本的任何其他部分被执行。 对此的需求将根据脚本的设计而有所不同。
我们还包括一些评论,作为我们测试相关更改的“标记”。 这些可用于在测试完成时帮助查找和删除更改。