2014-06-05 70 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));