2012-06-28 11 views
10

मैं बूस्ट :: एएसओओ का उपयोग करके छोटे एक्सएमपीपी सर्वर लिख रहा हूं और मैं अपने कोड को यूनिट-टेस्ट करना चाहता हूं। प्रश्न:यूनिट-परीक्षण और बढ़ावा :: एएसआई

  1. क्या इसके लिए कुछ उपयोग करने के लिए तैयार फ्रेमवर्क हैं? जहां तक ​​मैं समझता हूं, मुझे बूस्ट :: एएसओ कक्षा/टेम्पलेट्स के लिए नकली ऑब्जेक्ट्स प्रदान करने की आवश्यकता है और मैं वास्तव में इसे (सेमी) स्वचालित रूप से बनाना चाहता हूं।
  2. क्या समरूपता का परीक्षण करना संभव है (उदाहरण के लिए सर्वर के बीच एकाधिक कनेक्शन और संदेश रूटिंग)?

उत्तर

6

1) मैंने एक छोटी सॉकेट क्लास लिखा है जिसे बढ़ावा :: asio :: ip :: tcp :: सॉकेट के प्रतिस्थापन के रूप में उपयोग किया जा सकता है। यदि आप चाहें, तो आप robitzki.de/test_socket.h (test_socket.cpp, test_io_plan.h और test_io_plan.cpp) पर एक नज़र डाल सकते हैं। इस्तेमाल किए गए कन्स्ट्रक्टर के आधार पर, सॉकेट विभिन्न आकारों के साथ हिस्सों के पढ़ने/लिखने का अनुकरण कर सकता है। त्रुटियों को भी नकल किया जा सकता है। यदि आप चाहें तो इसका इस्तेमाल करने के लिए स्वतंत्र हैं।

2) सॉकेट प्रतिस्थापन के साथ कोई परीक्षण के तहत सॉफ्टवेयर के लिए तनाव परीक्षण कर सकता है। यह कभी गारंटी नहीं देगा कि कोड में बग नहीं है लेकिन कुछ भी बेहतर नहीं है ;-)। व्यक्तिगत रूप से मुझे यह सुनिश्चित करने के लिए सबसे अच्छा कोड समीक्षा पसंद है कि मल्टीथ्रेड कोड में जितनी संभव हो उतनी छोटी बग शामिल हैं।

HTH

टॉरस्टेन

+0

हाय, मैं इकाई परीक्षण को बढ़ावा देने को देखकर किया गया है :: asio के साथ-साथ और अपने test_socket.h पाया, मैं इसे borrwing कर रहा हूँ अगर आप :) – dutt

+3

कोई आपत्ति नहीं है @dutt आप इसका उपयोग करने के लिए स्वागत है। Https://github.com/TorstenRobitzki/Sioux/tree/master/source/asio_mocks पर एक नज़र डालें, जहां मैंने इसे अधिक पुन: प्रयोज्य रूप में रखने की कोशिश की है। –

+0

धन्यवाद, मैं एक नज़र डालूंगा :) मैंने अपनी जरूरतों के अनुरूप यहां कुछ मामूली संशोधन किए हैं। – dutt