C 全局静态变量googletest
假设我们有以下代码片段C 全局静态变量googletest,c,googletest,C,Googletest,假设我们有以下代码片段 // myfile.c #include myfile.h static int global_static_value; bool check_it(int value) { if (global_static_value== value) { return true; } else { return false } } void set_value(int value) { global_static_value = va
// myfile.c
#include myfile.h
static int global_static_value;
bool check_it(int value) {
if (global_static_value== value) {
return true;
} else {
return false
}
}
void set_value(int value) {
global_static_value = value;
}
// myfile.h
bool check_it(int value)
void set_value(int value)
如何为函数编写google测试bool check\u it(int value)
以测试true
和false
返回值
PS:不允许
#将myfile.c
包含到google测试中只需编写一个帮助函数,允许您更改值。如果设计需要全局变量,那么它可能有缺陷。如果不想在生产代码中包含函数,可以使用#ifdef google_测试
。设置此值的条件是什么?@Devolus不允许进行此类更改。确定。但是,您必须有一个设置该值的条件,否则该值没有意义,因此您可以将该条件强制到您想要的方向。在我看来,不应该为任何任意条件编写测试,而应该为用例场景编写测试。不管怎样,您有这个set\u value
函数,因此您可以在测试设置中随时调用它。只需编写一个helper函数,允许您更改值。如果设计需要全局变量,那么它可能有缺陷。如果不想在生产代码中包含函数,可以使用#ifdef google_测试
。设置此值的条件是什么?@Devolus不允许进行此类更改。确定。但是,您必须有一个设置该值的条件,否则该值没有意义,因此您可以将该条件强制到您想要的方向。在我看来,不应该为任何任意条件编写测试,而应该为用例场景编写测试。无论如何,您有这个set\u value
函数,所以您可以在测试设置中调用它。
TEST_F(MyTestClass, MyTest)
{
set_value(1);
EXPECT_FALSE(check_it(2));
EXPECT_TRUE(check_it(1));
}