मैं कुछ सी ++ कोड पर यूनिट परीक्षण करने की कोशिश कर रहा हूं लेकिन कुछ परेशानी में भाग रहा हूं।क्यों दावा नहीं करता :: वीएस यूनिट टेस्टिंग फ्रेमवर्क में AreEqual std :: string के साथ काम करता है?
मैं कोड के निम्नलिखित लाइनों के लिए इसी तरह कुछ है ...
std::string s1 = obj->getName();
std::string s2 = "ExpectedName";
Assert::AreEqual(s1, s2, "Unexpected Object Name");
और मैं निम्नलिखित संकलक त्रुटि मिल रही है ...
error C2665: 'Microsoft::VisualStudio::TestTools::UnitTesting::Assert::AreEqual' :
none of the 15 overloads could convert all the argument types
ऐसा लगता है जैसे कि यह एक होना चाहिए the following overload के साथ मेल:
AreEqual<(Of <(T>)>)(T, T, String)
ऊपर अधिभार एक टेम्पलेट अधिभार नहीं है किसी भी वस्तु का समर्थन करना चाहिए, जब तक तर्क 1 और 2 एक ही प्रकार के होते हैं? या क्या मैं कुछ न कुछ भूल रहा हूं?
क्या कोई अन्य तरीका है कि मैं इस आर्ट को पूरा कर सकता हूं?
एक और कामकाज (केवल अतिरिक्त प्रयास किए बिना तारों के लिए) [अंतर्निर्मित मार्शलिंग लाइब्रेरी] (http://msdn.microsoft.com/en-us/library/bb384865 (VS.100) .aspx का उपयोग करना होगा): 'जोर दें :: AreEqual (marshal_as (एस 1), marshal_as (एस 2), एल" अप्रत्याशित वस्तु नाम ");'। +1 हालांकि, मुझे लगता है कि आपका कामकाज रचनात्मक है। : -] –
ildjarn