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 -tdan ==.
type test_functionmengatakan test_function on funktio.saat menggunakan bahasa Finlandia dan ist eine Funktionsaat menggunakan bahasa Jerman.
LC_ALL=Cke
fn_exists foo || foo() { :; }