技术开发 频道

Wince和Windows Mobile下native C++的单元测试

 使用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来比较。

查看原文地址

0
相关文章