2010-01-07 14 views
16

कल्पना कीजिए कि मेरे पास उपप्रणाली में हेडर फ़ाइलें हैं, लेकिन स्रोत कोड तक कोई पहुंच नहीं है।कोड स्टब जेनरेटर (हेडर फाइलों से) की तलाश

अब मैं हेडर फ़ाइलों (परीक्षण उद्देश्यों के लिए) में घोषित सभी कार्यों से मेल खाने के लिए स्टब्स उत्पन्न करना चाहता हूं।

मैंने ऐसा करने के लिए कुछ सरल कोड लिखा, लेकिन यह सही नहीं है। क्या किसी को किसी भी स्वतंत्र रूप से उपलब्ध सॉफ्टवेयर के बारे में पता है जो यह करेगा?


[अद्यतन] पूछने के पांच साल बाद, यह प्रश्न अभी भी अपवित्र हो रहा है।

यह विषय के रूप में बंद था, जो आजकल है (althoguh यह मूल रूप से पोस्ट नहीं किया गया था)। सौभाग्य से, अब हम https://softwarerecs.stackexchange.com/

+1

क्या आप किसी तृतीय पक्ष डीएल से लिंक करने का प्रयास कर रहे हैं? क्योंकि यदि ऐसा है तो आप लिंकिंग के लिए आसानी से एक .lib उत्पन्न कर सकते हैं और फिर आप कक्षाओं/कार्यों को प्राप्त करने के लिए एक टूल का उपयोग कर सकते हैं जिसे डीएल को सी ++ नाम मैंगलिंग के साथ संकलित किया गया था। – user230821

+3

और डॉल्फिन के साथ कोई समस्या नहीं है? (क्षमा करें, * porpoises * पारित नहीं कर सका)। – Tarydon

+1

+1 मैं थोड़ी कम "गलतियों" भी बना देता हूं ;-) – Mawg

उत्तर

6

मुझे लगता है कि stubgen आपके बाद के बाद हो सकता है।

+0

+1 और उत्तर। हां, यह वही है जो मैं ढूंढ रहा था। धन्यवाद! – Mawg

+0

यह शुरुआत में अच्छा लग रहा था (मेरे पास समान आवश्यकताएं हैं) लेकिन यह नेमस्पेस घोषणाओं को पार्स करने पर पड़ती है। – regomodo

3

विजुअल स्टूडियो के लिए विजुअल असिस्ट एक्स में यह कार्यक्षमता है, हालांकि यह स्वचालित नहीं है।

समारोह पर

Tri ProjectTriOnPlane(Tri* a_Triangle); 

और फिर, अगर इसी ग या सीपीपी पाया जाता है, Refactor (VA X) -> Create Implementation करने के लिए जाना है, जो इतनी तरह एक कार्यान्वयन पैदा करेगा:

Tri Camera::ProjectTriOnPlane(Tri* a_Triangle) 
{ 

} 

यह भी नहीं करता है कुछ मानक वापस नहीं, यह एक शर्म की बात है।

+0

क्षमा करें, मुझे इसे थोक स्वचालित – Mawg

+0

+1 की आवश्यकता है।जवाब देने के लिए teh समय लेने के लिए धन्यवाद। – Mawg

3

शायद Lzz जो आप चाहते हैं वह करता है।

+0

शायद यह करता है। यह हेडर (और स्रोत) उत्पन्न करता है, लेकिन मैं इसे हेडर खिलााना चाहता हूं। यदि यह हेडर पर इनपुट के रूप में नहीं दबाता है, तो मैं इसके जेनरेट किए गए हेडर को अनदेखा कर सकता हूं और केवल जेनरेट किए गए स्रोत का उपयोग कर सकता हूं। मैं इसे आज़मा दूंगा और आपको वापस ले जाऊंगा। – Mawg

1

आप डॉक्सिजन का उपयोग करके आसानी से एक स्टब जनरेटर लिख सकते हैं। यह अच्छी तरह से ज्ञात नहीं है लेकिन यह एक सहायक पुस्तकालय के साथ आता है जो एक्सएमएल आउटपुट पर बहुत अच्छा अमूर्तता प्रदान करता है (this page देखें)।

यदि आप this header file के अंत को देखते हैं, तो आप देखेंगे कि आपको अच्छे ISTructs, IClass ऑब्जेक्ट्स मिलते हैं, जिससे आप आईस्केक्शन को सूचीबद्ध कर सकते हैं। आपकी पसंद के अनुसार सभी बहुत ही आसान और अनुकूलन योग्य।

जैसा कि मुझे संदेह है कि आपको एक सामान्य उपकरण से सटीक स्टब्स मिलेंगे, तो आप बेहतर हो सकते हैं यदि आप डॉक्सिजन का उपयोग करके स्वयं को कोड करते हैं, क्योंकि आपके लिए सही ढंग से पार्सिंग सी ++ वाक्यविन्यास के सभी भारी उठाने के लिए किया जाता है।

और यदि आपके परीक्षण पैटर्न मुख्य रूप से विधि पैरामीटर के प्रकार पर निर्भर हैं, तो आप संभवतः विधि के पैरामीटर का विश्लेषण करके और उचित कोड उत्पन्न करके पूर्ण परीक्षण स्टब्स उत्पन्न कर सकते हैं।

4

यहां परल और विम http://www.vim.org/scripts/script.php?script_id=213 के साथ एक समाधान है, यह सीटीएजी का उपयोग करता है, और यदि कोई शामिल पर्ल स्क्रिप्ट का उपयोग करके वांछित आवश्यकता को आसानी से हटा सकता है।

+0

यह अच्छा लग रहा है, रैंक! – Mawg

संबंधित मुद्दे