【问题标题】:C++ / GoogleTest - How to test member variable of a class being testedC++ / GoogleTest - 如何测试正在测试的类的成员变量
【发布时间】:2019-10-15 16:30:38
【问题描述】:

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

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_ 的值? 谢谢!

【问题讨论】:

标签: c++ googletest


【解决方案1】:

由于您已经将age_ 公开,您可以添加另一个EXPECT_EQ 语句。如果将age_ 公开不是故意的,那么您将必须提供一种在GTest 代码中访问age_ 的方法。

【讨论】:

    猜你喜欢
    • 2021-05-10
    • 2014-12-07
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-21
    • 2021-12-17
    相关资源
    最近更新 更多