使用CppUnitLite
在需要进行单元测试的项目下建立一个文件夹叫做CppUnitLite,把需要的头文件拷贝到这个文件夹下。

在Linker里面增加依赖库 CppUnitLite.lib

#include "CppUnitLite\TestHarness.h"
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
TestResult tr;
TestRegistry::runAllTests(tr);
return 0;
}
SimpleString StringFrom(const std::string& value)
{
return SimpleString(value.c_str());
}
class ClassA
{
public:
int Method1()
{
return 5;
}
double Method2()
{
return 1.88587;
}
std::string Method3()
{
return "string1";
}
bool Method4()
{
return true;
}
};
TEST( Stack, test_simple )
{
ClassA a;
LONGS_EQUAL(5, a.Method1());
DOUBLES_EQUAL(1.9, a.Method2(), 0.1);
CHECK_EQUAL("string", a.Method3());
CHECK(!a.Method4());
}
TEST用于定义测试类,第一个参数为测试名,一般使用类名字,第二个为测试分组名字。 LONGS_EQUAL用于整型比较,DOUBLES_EQUAL用于浮点数的比较,第三个参数为精度。CHECK_EQUAL用于字符串的比较,由于CppUnitLite不依赖于STL,所以需要StringFrom函数来转换std::string到CppUnitLite的string类。CHECK是逻辑比较,这个宏可以用于任何的比较,例如有一个类重载了==(等号操作符),那么可以使用CHECK来比较。