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