کمترین میزان کد برای اجرای تست را مینویسیم که خطایی که تستمان میدهد را ببینیم
مراحل را به ترتیب انجام دهید شما چیز جدیدی لازم نیست بدانید که کاری کنید تست خطا بدهد.
تمام چیزی که لازم هست مقدار کافی کد هست که باعث کامپایل شدن تست بشود اما باعث پاس شدن آن نشود.
خوب نیست که میدانید برای مسائل پایهای چگونه تست گو بنویسید؟ این یعنی شما حالا میتوانیدهرچقدر که میخواهید با پروداکشن کار کنید و خیالتان راحت باشد که همه چیز درست است یا نه.
repeat_test.go:10: expected 'aaaaa' but got ''
به اندازهی کافی کد بنویسید که پاس شود
سینتکس for به شدت شبیه زبان سی میباشد و چیز زیادی ندارد.
برخلاف زبانهای دیگر همچون سی، جاوا، و جاوااسکریپت، برای حلقه نیازی به پرانتز نیست و گذاشتن کرلی براکت {} الزامی هست. شاید برایتان سوال باشد که خط پایین یعنی چه
قبلا ما برای ساخت یک متغیر از := استفاده میکردیم که ابزاری برای ساختن و مقداردهی به یک متغیر بود و دو کار را با هم انجام میداد. در خط بالا ما تنها متغیر را میسازیم و به آن مقدار نمیدهیم. از var برای ساخت تابع هم میتوان استفاده کرد که بعدا میبینیم.
تست را اجرا کنید الان باید پاس شود.
روش استفاده از for به شکل مفصل اینجا توضیح داده شده.
ریفکتور
حالا زمان ریفکتور و معرفی یک اپراتور جدید است، =+ .
=+ که متغیر اضافه کردن و مقداردهی است. کار آن این است که مقدار سمت راست اپراتور را با مقدار سمت چپ جمع کند و پاسخ را در متغیر سمت چپ بریزد. این با انواع دیگری همچون اعداد صحیح هم کار میکند.
بنچمارک
نوشتن بنچمارک یکی دیگر از ویژگیهای مهم گو هست و همچون تست نوشتن میماند.
همانطور که میبینید بنچمارکنویسی مثل تستنویسی میماند.
عبارت testing.B به شما این امکان را میدهد که از b.N استفاده کنید.
وقتی بنچمارک اجرا میشود, به تعداد b.N بار تکرار میشود و در آخر محاسبه میکند که چقدر طول کشید.
تعداد دفعات اجرای کد نباید برای شما مهم باشد, خود سرویس برای شما تعداد «مناسب» را برای شما تعیین میکند.
برای اجرای بنچمارک دستور زیر را بزنید
go test -bench=.
مقدار 136 ns/op یعنی کد ما به شکل میانگین ۱۳۶ نانو ثانیه طول کشیده تا تابع را اجرا کند که مقدار خوبی مجسوب میشود.
نکته: به شکل پیشفرض بنچمارک یکی یکی اجرا میشود.
تمرین
تست را به گونهای تغییر دهید که تست تعداد دفعات تکرار را بگیرد و سپس کد را براساس آن درست کنبد
یک ExampleRepeat بنویسید تا از تابع خود مستند داشته باشید
نگاهی به بستهی strings بیندازید. توابعی که فکر میکنید مفید باشند را پیدا کنید و با استفاده از آنها تست بنویسید. یادگیری کتابخانهی استاندارد در بلند مدت بسیار مفید است.