में गैर-निर्यातित कक्षाओं का परीक्षण हम विजुअल स्टूडियो 2008 और Boost.Test का उपयोग कर यूनिट परीक्षण का उपयोग कर एक सी ++ एप्लिकेशन विकसित करते हैं। फिलहाल, हमारे पास एक अलग समाधान है जिसमें हमारे यूनिट परीक्षण शामिल हैं।यूनिट परीक्षण डीएलएल
कोर समाधान में हमारी कई परियोजनाएं डीएलएल का उत्पादन करती हैं। हम परीक्षण कवरेज में सीमित हैं क्योंकि हम गैर-निर्यातित वर्गों का परीक्षण नहीं कर सकते हैं।
मैं इन कैसे परीक्षण किया जा सकता है पर दो विचार है:
- निर्यात सब कुछ
- DLL अंदर परीक्षण (एक ही परियोजना और समाधान) रखो और Boost.Test के बाहरी धावक का उपयोग
मुझे पूरी तरह से यकीन नहीं है कि क्या नुकसान होगा। मॉड्यूल स्तर encapsulation तोड़ने के ऊपर संख्या 1, और संख्या 2 के परिणामस्वरूप एक बड़ा डीएलएल हो सकता है, जब तक कि केवल कुछ विन्यास में परीक्षण कोड शामिल न हो।
तो, क्या उपर्युक्त तरीकों से कोई गंभीर कमी है, या आप अन्य समाधानों के बारे में सोच सकते हैं?
मैं "ऑब्जेक्ट लाइब्रेरीज़" नामक एक सुविधा की पेशकश [सीएमके] (http://www.cmake.org) पर संकेत देना चाहता हूं। ('add_library (foo_obj ऑब्जेक्ट ...) ') मेरी परियोजनाओं में मैं ऑब्जेक्ट लाइब्रेरीज़ में स्रोत बनाता हूं, जिसे मैं * डीएलएल * में जोड़ता हूं (' add_library (foo साझा ... $) ') * और * इसके परीक्षण ड्राइवर ('add_executable (foo_test ... $ )')। यह एक अलग निर्माण प्रणाली का उपयोग करके नीचे दिए गए उत्तरों का एक रूप है (यही कारण है कि मैंने इसे एक टिप्पणी के रूप में जोड़ा, जवाब नहीं दिया), लेकिन यह एक ही समस्या को हल कर रहा है। –
DevSolar