我目前正在编写一个 bash 测试框架,其中在测试函数中,可以使用标准 bash 测试 ( [[
) 以及预定义的匹配器。匹配器是 '[[' 的包装器,除了返回返回码外,还设置一些有意义的消息来说明预期的内容。
例子:
string_equals() {
if [[ ! $1 = $2 ]]; then
error_message="Expected '$1' to be '$2'."
return 1
fi
}
因此,当使用匹配器并且它失败时,才会设置 error_message。
现在,在稍后的某个时间点,我测试测试是否成功。如果成功,我用绿色打印期望,如果失败则用红色打印。
此外,可能设置了error_message,所以我测试消息是否存在,打印它,然后取消设置(因为下面的测试可能没有设置一个error_message
):
if [[ $error_message ]]; then
printf '%s\n' "$error_message"
unset -v error_message
fi
现在我的问题是,是否最好取消设置变量,或者将其设置为'',比如
error_message=''
哪一个更好?它真的有区别吗?或者也许我应该有一个额外的标志来指示消息已设置?