| Modul ini dinilai siap digunakan secara umum. Modul ini sudah matang dan diperkirakan bebas dari bug dan siap digunakan pada tempat yang tepat di manapun. Modul ini siap disinggung di halaman-halaman bantuan dan sumber informasi Wikipedia lainnya sebagai pilihan untuk dipelajari para pengguna baru. Untuk mengurangi beban server dan output yang tidak diharapkan, modul ini harus diperlengkapi dengan halaman bak pasir dan kasus uji daripada harus melakukan suntingan coba-dan-salah berulang-ulang. |
Modul ini menyediakan fungsi callAssert, yang menyederhanakan pemeriksaan kesalahan dengan menampilkan kesalahan jika fungsi yang diberikan mengembalikan nil atau salah. Modul ini mirip dengan fungsi baku assert, tetapi keduanya berbeda, callAssert sendiri memanggil fungsi tersebut, yang nilai kembaliannya akan diperiksa. Memungkinkannya untuk memasukkan nama fungsi dan nilai argumen dalam pesan kesalahan.
PenggunaanPenggunaan
local callAssert = require('Module:CallAssert')
local result1, result2, etc = '''callAssert(''func'', {{'}}''funcName''{{'}}, ...)'''
callAssert memangil func(...) dan memeriksa apakah nilai yang dikembalikan pertama bernilai true. Jika ya, maka akan mengembalikan semua nilai yang dikembalikan. Jika tidak, modul ini akan menampilkan pesan kesalahan 'funcName(argument_values) failed'.
Dokumentasi di atas ditransklusikan dari Modul:CallAssert/doc. (sunting | riwayat)
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
localfunctionpack(...) return{...},select('#',...) end localfunctionmapArray(func,array,count) localresult={} fori=1,countor#arraydo result[i]=func(array[i]) end returnresult end localfunctionquote(value) iftype(value)=='string'then return(string.gsub(string.format('%q',value),'\\\n','\\n'))-- Outer parentheses remove second value returned by gsub end localstr=tostring(value) iftype(value)=='table'andstr~='table'then return'{'..str..'}' end returnstr end localfunctioncallAssert(func,funcName,...) localresult,resultCount=pack(func(...)) ifnotresult[1]then localargs,argsCount=pack(...) args=mapArray(quote,args,argsCount) localmessage=mw.ustring.format( '%s(%s) failed', funcName, table.concat(args,', ') ) error(message,2) end returnunpack(result,1,resultCount) end returncallAssert