C ++ / GoogleTest-如何测试正在测试的类的成员变量

时间:2019-05-30 03:04:00

标签: c++ googletest

我正在为遗留代码创建测试,并想知道是否可以检查像这样的类的成员变量的值(我知道我的下面的代码非常糟糕,例子很糟糕:/。希望仅关注一下问题)

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 Test),我叫getInfo():

EXPECT_EQ(success, sut_->getInfo());

但是,这只是验证getInfo()的结果是success。是否可以通过其他方法检查age_的值而无需添加新方法/更改返回值? 谢谢!

1 个答案:

答案 0 :(得分:3)

由于已经公开age_,因此您可以添加另一个EXPECT_EQ语句。如果不打算公开age_,那么您将不得不提供一种方法,可以使用age_代码访问GTest