一点背景:我希望对内置到共享对象文件中的代码进行单元测试,比如libabc
。此代码还调用libjson-c
和libcurl
函数。
我计划为产品代码中的每个函数编写函数明智的测试,模拟从libabc
、libjson-c
和libcurl
调用其他函数。现在我无法将给定文件的所有测试a.c
安排在一个测试文件中,因为在每个测试中,我都需要模拟a.c
中的不同功能。
此外,在单个测试中,我想模拟所有对libjson-c
和libcurl
的函数调用,这样我就不必链接(gcc -lcurl -ljson-c
(依赖项,这需要为从a.c
调用的所有函数编写__wrap
函数。但是由于每个测试用例都希望一些特定的代码存在于包装的函数中,所以我不能一劳永逸地包装它们。
关于如何使用CMocka编写和安排测试的任何想法?我是否应该创建一个单独的测试文件,该文件在可执行文件中编译以测试产品代码函数?
我不熟悉 Cmocka,但我真的很喜欢用 cmock 让步并每天使用它。