मुझे लगता है कि पहेली का लापता टुकड़ा यह है कि आपको किसी विधि पर अपेक्षा निर्धारित करने की आवश्यकता नहीं है और इसके बजाय आप केवल डिफ़ॉल्ट वापसी मान सेट कर सकते हैं।
Mocks
सभी चर्चा और "Google Mock for Dummies" में उदाहरण उम्मीदों की स्थापना के आसपास केंद्रित है। कुछ निम्न के समान कोड का उपयोग कर के बारे में सब कुछ वार्ता:
EXPECT_CALL(turtle, PenDown())
.Times(AtLeast(1));
है जो तुम मजाक है, लेकिन छोटा करते आप किसी भी उम्मीदों की जरूरत नहीं है के लिए के लिए क्या चाहते हैं। उस परिचय को पढ़ने के बाद मुझे कोई संकेत नहीं था कि स्टबिंग के लिए googlemock का उपयोग कैसे करें।
स्टब्स
ratkok की टिप्पणी मुझे पता लगाने के लिए एक डिफ़ॉल्ट वापसी मान सेट करने के लिए नेतृत्व किया। यहाँ कैसे एक मज़ाक उड़ाया वस्तु लेकिन कोई उम्मीद के लिए एक वापसी मान निर्दिष्ट करने के लिए है:
ON_CALL(foo, Sign(_))
.WillByDefault(Return(-1));
http://code.google.com/p/googlemock/wiki/CookBook#Setting_the_Default_Actions_for_a_Mock_Method
ऐसा प्रतीत होता है googlemock एक चेतावनी जारी करेगा अगर आप एक विधि नहीं EXPECT_CALL है कि कहते हैं। जाहिर है आप अपने NiceMock निर्माण का उपयोग कर इस चेतावनी को रोक सकते हैं या आप इसे अनदेखा कर सकते हैं। इसके अतिरिक्त ऐसा लगता है कि आप इसके बजाय उम्मीद का उपयोग कर चेतावनी से बच सकते हैं (जो मुझे यकीन नहीं है कि यह स्टब्स के लिए एक अच्छा विचार है)। Google Mock FAQ से:
EXPECT_CALL(foo, Bar(_))
.WillRepeatedly(...);
मुझे विश्वास है कि है कि वास्तव में क्या मैं यह पता लगाने की कोशिश कर रहा था।
अद्यतन
मैं पुष्टि कर सकता यह काम करता है। मैंने googlemock के साथ Google परीक्षण का उपयोग करके एक यूनिट टेस्ट लिखा और ON_CALL का उपयोग कर कक्षा के लिए एक विधि को स्टब करने में सक्षम था।
यकीन नहीं है लेकिन मुझे लगता है कि बूस्ट में यूनिट टेस्ट लाइब्रेरी है। दुर्भाग्यवश मुझे अकेलेगाइंड के साथ स्वीकार करना है मैंने कभी यूनिट परीक्षण के लिए कोड नहीं लिखा है। – AJG85
क्या कोई जनरेटर पायथन लिपि नहीं है जो कुछ नकली कक्षाएं उत्पन्न कर सकता है? – Nim
@aloneguid: गंभीरता से? मुझे विश्वास नहीं है। वास्तविक सी ++ लोग अपने आवेदन के लिए जो भी परीक्षण उपयुक्त हैं उनका उपयोग करते हैं। –