首页 > 解决方案 > 编写 gtest 验证类是否为空

问题描述

我有几行代码,如下所示:

int class1::function() {
  std::unique_ptr<namespace::class2> devObjPtr(new namespace::class2);
  if (devObjPtr == nullptr) {
    return 0;
  }
  return 1;
}

此函数存在于同一命名空间中的另一个类中。如何使用 gtest 或 gmock 测试那段代码?

标签: c++c++11googletestgooglemock

解决方案


如果您只对控制 的输出感兴趣class1::function(),那么您可以像这样使用 gMock:

class mock_class1 : public class1
{
public:
    MOCK_METHOD(int, function, ());
};

TEST(TestBase, Test_success)
{
    mock_class1 mock;
    EXPECT_CALL(mock, function).WillOnce(Return(0));

    // Some code that invokes class1::function()...
}

如果这不能回答问题,那么您可能需要提供有关您要完成的工作的更多信息。


推荐阅读