C++ / GoogleTest - 如何测试正在测试的 class 的成员变量
C++ / GoogleTest - How to test member variable of a class being tested
我正在为遗留代码创建测试,想知道是否可以像这样检查 class 的成员变量的值(我知道我下面的代码非常糟糕,糟糕的例子:/ .希望只是请专注于问题):
class Animal
{
public:
RESULT getInfo();
int age_;
};
int main()
{
Animal animal;
RESULT result = animal.getInfo();
return 0;
}
RESULT Animal::getInfo()
{
age_ = rand() % 10 + 1;
if (age == 5)
{
return success;
}
else
{
return fail;
}
}
在我的测试中(使用 Google 测试),我调用 getInfo():
EXPECT_EQ(success, sut_->getInfo());
然而,这只是验证getInfo()
的结果是success
。有没有其他方法可以让我检查 age_
的值而不添加新的 method/changing 和 return 值?
谢谢!
因为你已经做了 age_
public,你可以再添加一个 EXPECT_EQ
语句。如果 age_
public 不是故意的,那么您将必须使用一种方法来访问 GTest
代码中的 age_
。
我正在为遗留代码创建测试,想知道是否可以像这样检查 class 的成员变量的值(我知道我下面的代码非常糟糕,糟糕的例子:/ .希望只是请专注于问题):
class Animal
{
public:
RESULT getInfo();
int age_;
};
int main()
{
Animal animal;
RESULT result = animal.getInfo();
return 0;
}
RESULT Animal::getInfo()
{
age_ = rand() % 10 + 1;
if (age == 5)
{
return success;
}
else
{
return fail;
}
}
在我的测试中(使用 Google 测试),我调用 getInfo():
EXPECT_EQ(success, sut_->getInfo());
然而,这只是验证getInfo()
的结果是success
。有没有其他方法可以让我检查 age_
的值而不添加新的 method/changing 和 return 值?
谢谢!
因为你已经做了 age_
public,你可以再添加一个 EXPECT_EQ
语句。如果 age_
public 不是故意的,那么您将必须使用一种方法来访问 GTest
代码中的 age_
。