为gmock自动生成模拟类
Automatic generation of mock classes for gmock
我正在使用gmock进行单元测试C++代码。我没有使用gtest框架。我使用的是visualstudio2008的内置测试框架。
现在我的问题是,我必须手动为真正的类到单元测试编写模拟类。例如,如果我有一个包含5个函数的类,那么我必须编写包含5个功能的MockAClass。有没有任何方法可以自动生成这些类。
class AClass
{
public:
virtual int AFunction()
{
return 5;
}
virtual int AFunctionWithArguments(int x)
{
return x;
}
class MockAClass : public AClass
{
public:
MOCK_METHOD0(AFucntion, int());
MOCK_METHOD1(AFunctionWithArgument, int(int x));
};
google mock项目捆绑了一个工具,可以帮助您完成这项工作。然而,我认为该工具需要安装python,我不知道它在windows环境中的工作效果如何。我还发现,生成的文件有时需要一点调整才能完美工作。
以下是来自文档的信息:
小贴士:如果这对你来说工作量太大,你会发现GoogleMock脚本/生成器/目录中的gmock_gen.py工具(由cppclean项目提供)有用。此命令行工具需要安装Python 2.4。你给它一个C++文件以及其中定义的抽象类的名称,它将打印为您定义mock类。由于C的复杂性++语言,这个脚本可能并不总是有效的,但它可以非常方便当它发生时。有关更多详细信息,请阅读用户文档。
这是这个脚本的新本地化。
免责声明:我曾在Typemock工作
你考虑过使用另一种工具吗
Typemock有一个名为Isolator++的工具,它不需要您编写"mocking类"。
TEST_F(IsolatorTests, SomeTest)
{
AClass* fakeclass = FAKE(AClass);
WHEN_CALLED(fakeclass->AFunction()).Return(10);
ASSERT_EQ(10, fakeclass.AFunction());
}
您可以在关于的页面上了解更多信息
相关文章:
- 查找自动生成键并具有线性内存消耗的小型关联数组
- Qt:更新 QString 时自动生成的代码失败
- 通过基类自动执行窗口编程
- C++ 如何使派生类自动获取基类参数
- 我可以说服自动生成的构造函数将我的 POD 类成员归零吗?
- 在 C++ 中自动生成方法
- 在谷歌测试中创建模拟类的向量
- 删除了所有自动生成的构造函数/运算符的类仍然可以从函数返回吗
- 只有当类具有指针成员时,Visual Studio才会自动生成函数
- 为结构/类自动生成流运算符
- 从 COM TypeLib 自动生成的C++类不会在方法中返回 SAFEARRAY
- Cython 扩展类:如何在自动生成的 C 结构中公开方法
- 将代码添加到 SWIG 中自动生成的类
- 为gmock自动生成模拟类
- 在c++ 11中,当类没有任何构造函数时,自动生成类成员函数
- 用于类自动生成序列化函数的宏
- c++编译时自动生成模板类
- 自动生成的类成员
- 从*自动生成objective-c类.XSD模式文件
- 自动生成谷歌模拟方法