Xcode下使用gtest和gmock

2017-03-01  本文已影响1100人  龙翱天际

Xcode下使用gtest

编译gest

  1. 修改C++ Standard Library为C++11,否则将gtest集成到C++11的工程时,会有编译错误,
  2. 修改OS X Deployment Target为10.7及以上(C++11要求)
  3. 修改Architectures为通用,
    修改后按Command+B编译代码,如图:


    配置Architectures
    配置OS X Deployment Target
    配置C++ Standard Library

配置gest库环境

Xcode下使用mock

编译mock

编译gmock

配置gmock环境

同gtest

编写gtest和gmock测试用例

class Messenger {
public:
  virtual ~Messenger() {}
  virtual std::string getMessage() = 0;
};

class MockMessenger : public Messenger {
public:
  MOCK_METHOD0(getMessage, std::string());
};

class HelloWorld {

public:
  std::string getMessage(Messenger *messenger) {
    return messenger->getMessage();
  }
};

TEST(ss, getMessage) {
  MockMessenger messenger;
  std::string msg = "Hello World";
  EXPECT_CALL(messenger, getMessage())
      .WillRepeatedly(testing::Return(testing::ByRef(msg)));
    HelloWorld helloWorld;
    EXPECT_EQ(msg, helloWorld.getMessage(&messenger));
    EXPECT_EQ("Hello World1", helloWorld.getMessage(&messenger));
}

相关资料:
gmock官方网站
gmock的正则表达式
gmock官方wiki
gtest官方网站

上一篇 下一篇

猜你喜欢

热点阅读