我们开始使用CUnit进行一些工作,除了一切都在一个线程中运行,并且任何内存故障导致单元测试停止运行,这相当恼人。
有一种C单元测试框架,叉等所有的测试都是即使在该核心转储测试存在执行在一个单独的过程执行每个测试用例: Check
然而,I”所有这些叉子带来的表现都会受到损害(并且说实话,我没有尝试过)。但我不会忍受任何单一的测试核心倾销:我通常会立即修复它。
一招,以防止单元测试核心是assertion guard,例如:使用的断言,以防止使用NULL指针(例如用minunit)。
void test_function_returning_a_pointer(void)
{
struct_t *theStruct = function_returning_a_pointer();
MU_ASSERT(theStruct != NULL);
//--- now you can use the pointer
MU_ASSERT(theStruct->field1 == 0);
return MU_PASSED;
}
顺便说一下,我不知道任何C++单元测试框架,不会在分段违规的情况下崩溃。
我还发现编写测试非常困难,但这可能只是为您进行单元测试。
您能详细说明一下您的困难吗?您是否试图将遗留代码置于测试之下?
请参阅[这里] [1]为您的答案。 (Duplicate)[1]:http://stackoverflow.com/questions/65820/unit-testing-c-code – jjnguy 2008-10-07 04:45:12