0

我想为遗留 C api 创建模拟对象。它的有效方法是什么?我还在某处读到创建存根类可以帮助我,但在这里我也不确定推荐的方法是什么。可以先创建 Stub 类然后在其上创建模拟类吗?请分享您的意见。

-布佩什

4

1 回答 1

0

Google Mock 将 C 风格的函数称为“自由函数”。可以通过首先创建一个接口来模拟它们,这只是 C++ 中的一个抽象类。

他们给出的例子:

class FileInterface {
 public:
  ...
  virtual bool Open(const char* path, const char* mode) = 0;
};

class File : public FileInterface {
 public:
  ...
  virtual bool Open(const char* path, const char* mode) {
    return OpenFile(path, mode);
  }
};

不要直接调用Open(...),而是使用 的实例FileInterface,它可以被模拟以用于测试。


模拟可以像存根一样使用;只是不要对对象设置任何期望......只使用ON_CALL方法。

于 2013-06-19T16:33:58.467 回答