自己着手在写个完整的全新项目,之前也听说单元测试可以提高程序的健壮性。可是自己找不到合适的资料,对于如何编写单元测试,是一点都不懂。求推荐一些资料,或是单元测试框架~~
自己着手在写个完整的全新项目,之前也听说单元测试可以提高程序的健壮性。可是自己找不到合适的资料,对于如何编写单元测试,是一点都不懂。求推荐一些资料,或是单元测试框架~~
C++单元测试打桩
https://github.com/coolxv/cpp-stub
#include<iostream>
#include "stub.h"
using namespace std;
int foo(int a)
{
cout<<"I am foo"<<endl;
return 0;
}
int foo_stub(int a)
{
cout<<"I am foo_stub"<<endl;
return 0;
}
int main()
{
Stub stub;
stub.set(foo, foo_stub);
foo(1);
return 0;
}
3 回答1.2k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
2 回答2.8k 阅读
1 回答1.6k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答930 阅读
肯定有人会给你推荐一些经典的单元测试框架,如GoogleTest, cppunit 之类。
但我负责任的告诉你,那些框架太折腾了,你需要花很多时间和精力去学习使用,然后即使是一个非常非常小的项目,也要配置半天。
推荐给你一个新兴的单元测试框架:Catch
它简单到什么程度?你只需要引入一个头文件:
另外,它因为非常简单轻巧,所以很容易学习,把这个简短的教程看一遍,基本就掌握了。
为了更直观的了解这个框架,贴出教程上的一个例子:
这就是测试一个阶乘函数的全过程。感觉如何?
因为你标题注明了是C++,所以我也先入为主的认为你是想找单元测试实践方面的资料。针对C++语言的单元测试书籍非常少,我就推荐一本吧:
Modern C++ Programming with Test-Driven Development
如果你是对单元测试用例设计的理论知识感兴趣,求资料。那么我建议你去了解一下TDD的相关知识,然后就可以去看一些有针对性的书籍(只推荐一本,讲的非常具体):
甚至还可以先去对软件测试这个领域进行一些基本的了解,推荐几本书: