J'écris actuellement un cadre de test bash, où dans une fonction de test, les deux tests bash standard ( [[
) ainsi que des comparateurs prédéfinis peuvent être utilisés. Les concordances sont des enveloppes pour '[[' et, en plus de renvoyer un code de retour, elles fournissent un message significatif indiquant ce qui était attendu.
Ejemplo:
string_equals() {
if [[ ! $1 = $2 ]]; then
error_message="Expected '$1' to be '$2'."
return 1
fi
}
Ainsi, lorsqu'un matcheur est utilisé et qu'il échoue, c'est seulement dans ce cas qu'un error_message est défini.
Ensuite, à un moment donné, je vérifie si les tests ont réussi. S'ils ont réussi, j'imprime l'attente en vert, s'ils ont échoué, en rouge.
De plus, il se peut qu'un message d'erreur soit défini, donc je teste si un message existe, je l'imprime, puis je le supprime (parce que le test suivant peut ne pas définir de message d'erreur). error_message
) :
if [[ $error_message ]]; then
printf '%s\n' "$error_message"
unset -v error_message
fi
Maintenant, ma question est de savoir s'il est préférable d'annuler la variable ou de lui attribuer la valeur '', comme suit
error_message=''
Lequel est le meilleur ? Cela fait-il vraiment une différence ? Ou peut-être devrais-je avoir un drapeau supplémentaire indiquant que le message a été défini ?