0

这个定义是什么意思

#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

4

1 回答 1

0

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

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

更多信息:

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

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

debug("flag");     /*   Becomes fprintf(stderr, "flag");   */
于 2013-07-30T21:07:23.483 回答