वर्तमान उत्पाद जो मैं काम करता हूं वह एक विंडोज सेवा है जो सी ++ में लिखा गया है और आगे बढ़ने के लिए सभी नई कार्यक्षमताओं के लिए यूनिट परीक्षण होंगे। लेकिन यह एक दिलचस्प समस्या पैदा करता है (कम से कम मेरे लिए) हम विभिन्न चीजों के लिए बहुत से Win32 कॉल करते हैं और तदनुसार व्यवहार करते हैं, इसलिए यूनिट परीक्षणों को पूरा करने के लिए विभिन्न प्रकार के आउटपुट का परीक्षण करना अच्छा होगा, न कि वर्तमान प्रणाली राज्य।मॉकिंग और विन 32 एपीआई कॉल
मेरा प्रश्न यह है कि Win32 कॉल के परिणामों का नकल करने का सबसे अच्छा तरीका क्या है? मैंने दो अलग-अलग तरीकों के बारे में सोचा है:
1) सभी Win32 कॉल फ़ंक्शन पॉइंटर्स में उपयोग करें और उन्हें फ़ंक्शंस या क्लास में पास करें (उन्हें कितनी बार मारा जाता है) जो उनका उपयोग करते हैं और नकली पाने के लिए इसका उपयोग करते हैं परिणाम है।
2) हर जगह #ifdef UNITTEST
बहुत सारे हैं और यदि यह मेरे स्वयं के विशेष तरीकों को बुला रहा है या सामान्य नहीं है तो कहा जाता है।
क्या मैं यहां आधार से पूरी तरह से बंद हूं, या ज्ञान का मौलिक टुकड़ा खो रहा हूं?
क्या आप UnitTestMessageBox के व्यवहार को संशोधित करने के लिए तर्क की जरूरत है? #ifdef UNITTEST #undef MessageBox #define MessageBox UnitTestMessageBox #endif – Manolete