首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动生成gmock的模拟类

自动生成gmock的模拟类
EN

Stack Overflow用户
提问于 2012-02-13 07:01:23
回答 2查看 14.1K关注 0票数 13

我正在使用gmock进行单元测试C++代码。我没有使用gtest框架。我使用的是visual 2008的内置测试框架。

现在,我的问题是,我必须手动编写一个真正的类到单元测试的模拟类。例如,如果我有一个有5个函数的类,那么我必须用5个函数编写MockAClass。这些类是否可以自动生成。

代码语言:javascript
运行
复制
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));
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-13 07:45:34

有一个与谷歌模拟项目捆绑在一起的工具可以帮助你做到这一点。但是,我认为这个工具需要安装python,而且我不知道它在windows环境中的工作效果如何。我还发现,生成的文件有时需要稍加调整才能完美地工作。

这是来自文档的信息

提示:如果这对您来说是太多的工作,您会发现Google的脚本/生成器/目录中的gmock_gen.py工具( 环磷酰胺项目提供的)很有用。这个命令行工具需要安装Python2.4。给它一个C++文件和其中定义的抽象类的名称,它将为您打印模拟类的定义。由于C++语言的复杂性,这个脚本可能并不总是工作,但当它运行时会非常方便。有关详细信息,请阅读用户文档。

这是此脚本的新本地化

票数 20
EN

Stack Overflow用户

发布于 2012-02-13 07:22:23

免责声明:我曾在Typemock工作过

你考虑过使用另一个工具吗?

Typemock有一个名为Isolator++的工具,它不需要您编写“模拟类”。

代码语言:javascript
运行
复制
TEST_F(IsolatorTests, SomeTest) 
{
      AClass* fakeclass = FAKE(AClass);
      WHEN_CALLED(fakeclass->AFunction()).Return(10);

      ASSERT_EQ(10, fakeclass.AFunction()); 
}

您可以在这个关于页上了解更多有关它的信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9256664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档