C单元测试功能

时间:2013-10-11 18:11:03

标签: c unit-testing

在C或C ++中,如果我有一个具有以下结构的程序:

..includes..
..defines..

void function_one(int i) {
    ...
}

void function_two(const char * str) {
    ...
}

int main(int argc, char *argv[]) {
    ...
}

保存为main.c/cpp

如何编写新文件test.c/cpp,我可以调用main.c/cpp中的函数?

我现在怎么做:

编译器标志:-etest_main
要编译的文件:main.c test.c
运行测试输出:Blank no errors

我的测试主打印“在这里”,但我不确定为什么测试可执行文件不是。

2 个答案:

答案 0 :(得分:5)

看看CUnit,这样你就不必重新发明轮子了。这是他们的开发者简介doc

它是xUnit系列测试框架的一部分,已存在多年。

答案 1 :(得分:0)

您无法轻松测试与main函数位于同一编译单元中的函数。

可能的解决方案:

main.{c/cpp}拆分为两个源文件(编译单元)。一个文件只包含main函数,另一个文件包含所有其他函数。在进行单元测试时,只是不要在包含单个main函数的编译单元中进行链接。

或者,在编译单元测试时使用宏来排除main函数。