1
對Google Mock返回的引用所做的更改是否可以反映到原始值中?對Google Mock返回的引用所做的更改是否可以反映到原始值中?
樣品測試代碼(使用的CppUnit的單元測試框架):
int i = 0;
EXPECT_CALL(mock, GetValue())
.WillOnce(ReturnRef(i));
...
CPPUNIT_ASSERT_EQUAL(1, i);
示例代碼:
auto x = obj.GetValue();
++x;
我的測試表明,這並沒有更新的i
價值,但谷歌的描述ReturnRef
和ReturnRefOfCopy
似乎意味着這應該工作,即
- ReturnRef(變量) - 返回對變量的引用。
- ReturnRefOfCopy(value) - 返回值的副本的引用;副本只要行動一樣長。
相反,它好像ReturnRef
也返回到副本的引用。有什麼方法可以使用Google Mock來獲得這種行爲?
'auto&x = obj.GetValue();' – 2013-05-01 02:21:16
@CaptainObvlious正確。想要做出答案,以便我可以接受? – dlanod 2013-05-01 04:04:46