Saat ini saya sedang melakukan beberapa unit test yang dijalankan dari bash. Tes unit diinisialisasi, dieksekusi dan dibersihkan dalam skrip bash. Script ini biasanya berisi fungsi init (), execute () dan cleanup (). Tetapi mereka tidak wajib. Saya ingin menguji apakah mereka didefinisikan atau tidak.
Saya melakukan ini sebelumnya dengan menangkap dan membius sumbernya, tetapi tampaknya salah. Apakah ada cara yang lebih elegan untuk melakukan ini?
Sunting: Sniplet berikut ini berfungsi seperti pesona:
fn_exists()
{
LC_ALL=C type $1 | grep -q 'shell function'
}
type -t
dan ==
.
type test_function
mengatakan test_function on funktio.
saat menggunakan bahasa Finlandia dan ist eine Funktion
saat menggunakan bahasa Jerman.
LC_ALL=C
ke
fn_exists foo || foo() { :; }