چگونه لاگر را در Go مسخره کنیم؟

نوشتن تست های واحد همیشه واقعاً مهم است، اما می تواند واقعا طولانی یا پیچیده باشد. گاهی اوقات، ما کدی داریم که فقط با خواندن گزارش ها قابل بررسی است.
بنابراین امروز، ما خواهیم دید که چگونه کد خود را برای حل این مشکل تطبیق دهیم و نوشتن تست های واحد خود را آسان تر کنیم.
اضافه کردن یک متغیر جدید
برای تحقق آن، از تکنیکی استفاده خواهیم کرد که قبلاً در جهان آزمایش واحد Golang شناخته شده است، یعنی: یک متغیر برای ذخیره شی یا تابعی که می خواهیم مسخره کنیم ایجاد کنیم.
در هر بسته، ما یک را ایجاد خواهیم کرد log.go
فایلی که حاوی کد زیر خواهد بود:
var logger = log.New(os.Stderr, "", log.LstdFlags)
سپس، شما می توانید از آن مانند دیگر لاگر استفاده کنید: logger.Println(...)
اما این کد از کجا آمده است؟
این خط کد از log
بسته بندی این اعلامیه است std
متغیری که در log.Println
به عنوان مثال تابع
و همانطور که می بینید، ما فقط اعلان این نمونه لاگر جدید را کپی کردیم، اما این کار را در بسته های خود انجام دادیم تا بتوانیم بعداً آن را با ماک خود جایگزین کنیم.
مسخره کردن
اکنون که آن متغیرها را ایجاد کرده ایم، مسخره کردن آنها واقعاً آسان خواهد بود.
اما ابتدا باید ماکت را ایجاد کنیم!
var (
buff bytes.Buffer
MockLogger = log.New(&buff, "", log.LstdFlags)
)
همانطور که می بینید، ماک تقریباً مشابه لاگر است. تنها تفاوت این است ساختگی از یک بافر به عنوان خروجی استفاده می کند. این تفاوت بسیار زیاد است زیرا به ما این امکان را می دهد قادر به خواندن لاگ های چاپ شده باشید.
بنابراین در تست های واحد خود می توانید خط زیر را برای جایگزینی خود اعلام کنید logger
با تمسخر تو
logger = mocks.MockLogger
و سپس، شما فقط باید لاگ های موجود در بافر را با این بازیابی کنید strings.Split(mocks.Buff.String(), "\n")
تا بتوانید آخرین تاییدیه های خود را انجام دهید.
در نهایت، به طور کلی بسیار ساده است، اما به ما اجازه می دهد بیش از قبل انجام دهیم!
امیدوارم به شما کمک کند! 🍺