2014-06-05 34 views
0

在GMock测试方法中,我需要设置为变量的地址的OUT参数,使得dequeue() out参数,这是data指向可变chGmock列明参数

MOCK_METHOD1(dequeue, void(void* data)); 

char ch = 'm'; 
void* a = (void*)&ch; 

EXPECT_CALL(FQO, dequeue(_)) 
    .WillOnce(/*here I need to set argument to a*/); 

我试图找出side effects但不断收到错误。

+0

请添加错误你看到你的问题,使诊断问题更容易。 –

回答

3

如果你想有一个函数的输出参数指向一个void*,那么它的类型必须void**

MOCK_METHOD1(dequeue, void(void** data)); 

否则,你只能返回但不是通过输出参数指向值

如果你对dequeue()方法的签名和调用MOCK_METHOD1()适当的改变,那么这应该做你想要什么:

EXPECT_CALL(FQO, dequeue(_)) 
    .WillOnce(SetArgPointee<0>(a));