Monday, 15 April 2013

c++ - How to compare two iterators for unit test on VS2013? -


कोड:

  #include "stdafx.h" #include "CppUnitTest.h" # शामिल करें & lt; vector & gt; नामस्थान माइक्रोसॉफ्ट :: VisualStudio :: CppUnitTestFramework का उपयोग कर; नामस्थान इकाई_टाइट {TEST_CLASS (test_iterator) {सार्वजनिक: TEST_METHOD (vector_with_int) {std :: vector & lt; int & gt; नमूने; आश्वासन :: ईईएवल (नमूने। बीजीआईएन (), नमूने.बीजीन ()); }}; }  

जब संकलन:

त्रुटि 1 त्रुटि C2338: टेस्ट लेखक को अपनी कक्षा वर्ग std :: basic_string, class std :: के लिए ToString के विशेषज्ञ को परिभाषित करना चाहिए आवंटक> __cdecl Microsoft :: VisualStudio :: CppUnitTestFramework :: ToString> >> (कॉन्स्ट क्लास std :: _Vector_iterator>> & amp;) C: \ प्रोग्राम फ़ाइलें (x86) \ microsoft दृश्य स्टूडियो 12.0 \ vc \ unittest \ include \ cppunittestassert.h 66 1 इकाई_स्टेस्ट

इस समस्या को ठीक कैसे करें? क्या मुझे इसके बजाय एक और फ्रेमवर्क का उपयोग करना चाहिए?

आप से शुरू घटा सकते हैं प्रत्येक इटरेटर (यदि वे यादृच्छिक ढंग से चल रहे हैं) तो आप size_type ऑफसेट की तुलना में iterator प्रकार की तुलना कर रहे हैं:

  Assert :: AreEqual (samples.begin () - Samples.begin (), samples.begin () - samples.begin ());  

No comments:

Post a Comment