Actuellement, je fais quelques tests unitaires qui sont exécutés à partir de bash. Les tests unitaires sont initialisés, exécutés et nettoyés dans un script bash. Ce script contient habituellement une fonction init(), execute() et cleanup(). Mais elles ne sont pas obligatoires. J'aimerais tester si elles sont ou non définies.
Je l'ai fait précédemment en recherchant et en semant la source, mais cela ne semblait pas correct. Existe-t-il une manière plus élégante de procéder ?
Edit : Le sniplet suivant fonctionne comme un charme :
fn_exists()
{
type $1 | grep -q 'shell function'
}
0 votes
Merci. Je l'ai utilisé pour définir de manière conditionnelle des versions tronquées de fonctions lors du chargement d'une bibliothèque shell.
fn_exists foo || foo() { :; }
2 votes
Vous pouvez sauvegarder le grep en utilisant
type -t
y==
.0 votes
Ne fonctionne pas lorsque la locale n'est pas l'anglais.
type test_function
dittest_function on funktio.
en cas d'utilisation de la langue finlandaise etist eine Funktion
lorsque vous utilisez l'allemand.3 votes
Pour les langues autres que l'anglais
LC_ALL=C
à la resque