sgr*_*zko 7 c++ string unit-testing std visual-c++
我试图对一些c ++代码进行单元测试,但遇到了一些麻烦.
我有类似以下代码行的东西......
std::string s1 = obj->getName();
std::string s2 = "ExpectedName";
Assert::AreEqual(s1, s2, "Unexpected Object Name");
Run Code Online (Sandbox Code Playgroud)
而且我得到以下编译器错误...
error C2665: 'Microsoft::VisualStudio::TestTools::UnitTesting::Assert::AreEqual' :
none of the 15 overloads could convert all the argument types
Run Code Online (Sandbox Code Playgroud)
看起来它应该与以下重载匹配:
AreEqual<(Of <(T>)>)(T, T, String)
Run Code Online (Sandbox Code Playgroud)
上面的重载是不是应该支持任何对象的模板重载,只要参数1和2属于同一类型?或者我错过了什么?
还有其他方法可以实现此断言吗?
我想出了一些解决方法,以便比较整数而不是字符串:
Assert::AreEqual(0, s1.compare(s2), "Unexpected Object Name");
Run Code Online (Sandbox Code Playgroud)
将来,我们可能会切换到本机 C++ 单元测试,但与此同时,这确实有效。显然,这方面的消息传递不是很有帮助
Assert.AreEqual failed. Expected:<0>. Actual:<1>. Unexpected Trajectory Name
Run Code Online (Sandbox Code Playgroud)
但总比没有好。