什么意思#define TEST_CASE(...)

时间:2013-07-30 20:12:21

标签: c tdd unity-test-framework

这个定义意味着什么

#define TEST_CASE(...)

在Unity C测试工具中?

然后以这种方式使用它(例子):

TEST_CASE(0)
TEST_CASE(44)
TEST_CASE((90)+9)
void test_TheseShouldAllPass(int Num)
{
    TEST_ASSERT_TRUE(Num < 100);
}

有关Unity的更多信息,请访问http://throwtheswitch.org/white-papers/unity-intro.html

1 个答案:

答案 0 :(得分:0)

这是一个统一的预处理器调用,用于为以下测试示例生成测试用例。代码编译(或预编译)到:

test_TheseShouldAllPass(0);
test_TheseShouldAllPass(44);
test_TheseShouldAllPass(99);

更多信息:

如果标识符列表不以省略号结尾,则宏调用中的参数数量必须与相应宏定义中的参数数量相同。在参数替换期间,在所有指定参数被替换之后剩余的任何参数(包括任何分隔逗号)被组合成一个称为变量参数的参数。变量参数将替换替换列表中任何出现的标识符 VA_ARGS 。以下示例说明了这一点:

#define debug(...)   fprintf(stderr, __VA_ARGS__)

debug("flag");     /*   Becomes fprintf(stderr, "flag");   */