2

在 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

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

4

2 回答 2

5

看看CUnit,这样您就不必重新发明轮子了。这是他们的 Intro for Devs文档

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

于 2013-10-11T18:19:25.627 回答
0

您不能轻松地测试与函数驻留在同一编译单元中的main函数。

可能的解决方案:

将您main.{c/cpp}分成两个源文件(编译单元)。一个文件应仅包含main功能,另一个文件应包含所有其他功能。在进行单元测试时,不要在包含单个 main 函数的编译单元中链接。

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

于 2013-10-11T18:25:59.360 回答