首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GoogleMock中使用NiceMock作为实例变量

在GoogleMock中使用NiceMock作为实例变量
EN

Stack Overflow用户
提问于 2012-06-26 17:34:11
回答 1查看 6.8K关注 0票数 6

我想用一个方法的返回值赋值一个NiceMock。NiceMock是一个实例变量。

代码语言:javascript
复制
class TestFileToOsg : public testing::Test 
{
public:
    NiceMock<MockFileToOsg>* _mockFileToOsg;
protected:
virtual void SetUp();
};

void TestFileToOsg::SetUp()
{
    _mockFileToOsg = FixtureFileToOsg::getMockFileToOsgWithValidConfig();
}

fixture方法为:

代码语言:javascript
复制
MockFileToOsg* FixtureFileToOsg::getMockFileToOsgWithValidConfig()
{
    MockFileToOsg* fileToOsg = new MockFileToOsg(...);
    return fileToOsg;
}

编译器抛出以下错误:

代码语言:javascript
复制
error: invalid conversion from ‘MockFileToOsg*’ to ‘testing::NiceMock<MockFileToOsg>*’

如何使用fixture方法的返回值为实例变量赋值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-26 20:14:03

在你的testclass中,你应该只有一个指向mockobject的指针:

代码语言:javascript
复制
class TestFileToOsg : public testing::Test 
{
public:
   MockFileToOsg* _mockFileToOsg;
protected:
...

您的fixture应该实例化一个NiceMock并返回一个指向mockobject的指针。

代码语言:javascript
复制
MockFileToOsg* FixtureFileToOsg::getMockFileToOsgWithValidConfig()
{
   MockFileToOsg* fileToOsg = new NiceMock<MockFileToOsg>(...);
   return fileToOsg;
}

从mockClass.So NiceMock<>派生的NiceMock<>只能在实例化MockObject时使用。

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

https://stackoverflow.com/questions/11204458

复制
相关文章

相似问题

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