किसी एप्लिकेशन में बग को ठीक करने के लिए, मैंने postLoginएक मौजूदा विधि नाम की कॉल को जोड़कर एक विधि को संशोधित किया getShoppingCart।
कोड
protected void postLogin() {
getShoppingCart();
}
हालांकि, मुझे यकीन नहीं है कि इसके लिए एक इकाई परीक्षण लिखने का सबसे अच्छा तरीका क्या postLoginहै।
दृष्टिकोण १
मॉकिटो से वेरिफिकेशन का उपयोग करें बस यह सत्यापित करने के लिए कि विधि को कहा गया था।
verify(mock).getShoppingCart();
दृष्टिकोण २
उपयोगकर्ता के शॉपिंग कार्ट के मूल्य को प्राप्त करके विधि कॉल के साइड इफेक्ट का परीक्षण करें।
AssertNotNull(user.getShoppingCart());
क्या एक दृष्टिकोण दूसरे की तुलना में बेहतर है?
getShoppingCart()तरीके के साइड-इफेक्ट्स नहीं होते हैं, तब तक आपको परीक्षण करने की आवश्यकता नहीं है कि इसे कहा जाता है। यदि इसके साइड इफेक्ट्स हैं, तो आपको वास्तव में इसका नाम बदल देना चाहिए क्योंकि getXXX()पारंपरिक रूप से तरीकों को बेकार होना चाहिए।
getNextValue? यकीनन, कोई कह सकता है कि "इसे गटर न कहें, नाम बदल दें nextValue", लेकिन मैंने getNextपहले भी देखा है। शायद एक बेहतर उदाहरण एक इलेक्ट्रॉन का प्रतिनिधित्व करने वाली वस्तु होगी; क्या होता है जब मैं फोन करता हूं getPosition? या इससे भी बदतर,getPosition(); getVelocity();