Attualmente sto facendo alcuni test unitari che vengono eseguiti da bash. I test unitari vengono inizializzati, eseguiti e ripuliti in uno script bash. Questo script di solito contiene una init (), execute () e cleanup () funzioni. Ma non sono obbligatori. Mi piacerebbe testare se sono o non sono definiti.
L'ho fatto in precedenza bestemmiando e sedando la fonte, ma sembrava sbagliato. C'è un modo più elegante per farlo?
Modifica: il seguente sniplet funziona come un incantesimo:
fn_exists()
{
LC_ALL=C type $1 | grep -q 'shell function'
}
type -t
e ==
.
type test_function
dice test_function on funktio.
quando si usa la localizzazione finlandese e ist eine Funktion
quando si usa il tedesco.
LC_ALL=C
al
fn_exists foo || foo() { :; }