【发布时间】:2013-10-01 19:17:08
【问题描述】:
我想做一个小而笨的测试框架。
在创建这个愚蠢的框架时,我想满足的一个要求是能够将任何以“TEST_”开头的函数添加到我的函数列表中,并为“SETUP_”和“TEARDOWN_”添加一个函数。
例如:
TEST_MyFirstTest("My fake test"){
//... test code
}
SETUP_MyTest("setup before each test"){
//... create all objects to be handled here
}
int main() {
TESTFRAMEWORK Test = new TESTFRAMEWORK();
Test.run();
return 0;
}
显然我会在一个单独的文件中定义我的测试,但有没有办法做到这一点?我需要使用 TMP 吗?
【问题讨论】:
-
你看过 CPPUnit 吗?
-
我正在使用 Boost Unit_Test。这更像是一种练习,而不是我打算专业使用的东西。有点类似于重新实现数据结构作为教学练习。
-
一些编译器支持
__FUNCTION_NAME,这是一个返回包含函数名称的宏。 -
@ThomasMatthews:我认为您的意思是
__func__或__FUNCTION__- 从技术上讲,它是一个扩展为包含名称的字符串的宏 - 它与扩展为名称的宏略有不同的实际功能! -
它是否需要以 TEST_ 开头,或者您可以稍微调整一下并允许它以 TEST() 开头?例如,不要使用
TEST_MyFirstTest("My fake test"),而是使用TEST(MyFirstTest, "My fake test")。
标签: c++ unit-testing templates