单元测试所⽤⽂件链接如下:
1 添加
将上述catch.hpp⽂件引⼊要测试的c++项⽬中。
2 使⽤
使⽤⽅式如下:
在catch.hpp第10892⾏的main函数 中写了执⾏测试⽤例的规则
int main (int argc, char * argv[]){
//查找内存泄漏代码
//_CrtSetBreakAlloc(19949); //检查是否有内存泄漏
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_CRTDBG_LEAK_CHECK_DF); Catch::Session session;
//⼀下三⾏代码不可同时启⽤,不启⽤下⾯三⾏代码,默认执⾏所以测试⽤例 //启⽤下⾏代码,表⽰只执⾏\"名称\"为\"NIST_Cone\"的测试⽤例 //addTestOrTags(session.configData(),\"G100P250_L1435\");
//启⽤下⾏代码,表⽰只执⾏\"标签\"为\"[ABCD]\"的测试⽤例,标签必须加“[...]\" //addTestOrTags(session.configData(),\"[ABCD]\");
//启⽤下⾏代码,表⽰只执⾏\"标签\"为\"[ABCD]\"或\"[BCDE]\"的测试⽤例 //addTestOrTags(session.configData(),\"[ABCD],[BCDE]\"); int result = session.run(); getchar(); // YuYang Write it.return ( result < 0xff ? result : 0xff );}
3 编写单元测试
可以在⼀单独⽂件,专门编写单元测试⽤例。⾸先,引⼊关键头⽂件等
#include \"catch.hpp\" //头⽂件//必要的宏
#ifndef CATCH_CONFIG_MAIN#define CATCH_CONFIG_MAIN#endif
编写⽅法⼤致如下;
TEST_CASE(\"test\", \"[1]\") {
int a = sum( 2,4); //sum是被测试的函数 CHECK_EQUAL(a, 6); //测试结果判断/条件}
TEST_CASE(\"test2\", \"[1]\"){
int a = sum( 2,4); CHECK_EQUAL(a, 7);}
4 运⾏测试⽤例
注意屏蔽掉其他的main函数,直接运⾏时会运⾏catch.hpp中的main函数,从⽽执⾏单元测试⽤例。
5 观察测试结果
测试结果中标⽰出了出错的⽤例,以及出错的位置。
因篇幅问题不能全部显示,请点此查看更多更全内容