Sto provando a fare un test unitario su qualche codice C++ ma sto incontrando dei problemi.Perché non asserire :: AreEqual nel framework VS UnitTesting funziona con std :: string?
ho qualcosa simile alle seguenti righe di codice ...
std::string s1 = obj->getName();
std::string s2 = "ExpectedName";
Assert::AreEqual(s1, s2, "Unexpected Object Name");
e sto ottenendo il seguente errore del compilatore ...
error C2665: 'Microsoft::VisualStudio::TestTools::UnitTesting::Assert::AreEqual' :
none of the 15 overloads could convert all the argument types
sembra che dovrebbe essere un match con the following overload:
AreEqual<(Of <(T>)>)(T, T, String)
non è il sovraccarico di sopra di un sovraccarico del modello che dovrebbe supportare qualsiasi oggetto, purché gli argomenti 1 e 2 siano dello stesso tipo? O mi sta sfuggendo qualcosa?
C'è qualche altro modo in cui posso realizzare questo Assert?
Un'altra soluzione (per le stringhe solo senza sforzi aggiuntivi) consiste nell'utilizzare la [libreria di marshalling integrata] (http://msdn.microsoft.com/en-us/library/bb384865 (VS.100) .aspx): 'Assert :: AreEqual (marshal_as (s1), marshal_as (s2), L" Nome oggetto imprevisto ");'. +1 però, penso che la tua soluzione sia creativa. : -] –
ildjarn