Unit test ဒါမှမဟုတ် testable code ဖြစ်ဖို့ဘာလို့လိုတာလဲ။
၁ အချက်က code က testable မဟုတ်ရင် အလုပ် လုပ်မလုပ်မသိနိုင်ဘူး။ Ethic မရှိရာကြတယ်။ နောက်တခုက မစမ်းရသေးပဲနဲ့ production release ဖို့ကအဆင်မပြေဘူး။
၂ Manually test ဖို့ကအဆင်မပြေနိုင်တာ၊ ဥပမာ API level test တွေ ဆိုပါစို့ ကိုယ်ခေါ်လိုက်တဲ့ API က 200 မဟုတ်ပဲဲ 500 ပြန်လာရင်ဘာလုပ်ပါဆိုပြီး ကိုယ်ကရေးထားတာ ဒါပေသိ ဟိုဘက်က (အေးဆေးဖြစ်နေရင်) 500 ပြန်မလာနိုင်ဘူး။ ဥပမာ load, heavy traffic, network problem ကြောင့်မှ 500 ပြန်လာမှာမျိုး ဒါမျိုးကိုစစ်ဖို့က QA ချည်းသက်သက် အဆင်မပြေဘူး ။ Mock library, chaos test စတာတွေနဲ့မှ အဆင်ပြေမယ်။
၃ ။ Testable code especially unit test ဖြစ်ဖို့က dependency နည်းရတယ်။ သူ့ချည်းပဲ test လို့ရအောင်လုပ်ရတယ်။ Dependency နည်းမှ Mock လုပ်ရတာနည်းမှာ။ Dependency နည်းအောင် dependency ကို mock လုပ်လို့ရအောင် ရေးရင်းနဲ့ Open close principle , DI စတာတွေကိုလိုက်နာလာမယ် အဲ့ကျ design ပိုင်းအရပိုကောင်းသွားမယ်။
၄ ခုနကလို unhappy scenario တွေကိုစမ်းဖို့ လုပ်နိုင်ရင် code coverage ကောင်းမယ်။ Code က bullet proof ဖြစ်မယ်။
Original Post=>(https://www.facebook.com/thet.khine.587/posts/pfbid0PohBkPtMSwSqsFTLd145qww1CKsjLTz3tFP5c5boQQeaTa8gSvsBS5x9oMSWkwZAl)