0
我試圖模擬硬件抽象層功能,這是uint32_t hw_epoch()
通過編寫一個假的,並從一個假的調用模擬方法,這將讓我驗證hw_epoch()
函數開始調用。因此,考慮下面的代碼簡化:訪問Google測試夾具成員
#include <stdint.h>
#include "gmock/gmock.h"
using ::testing::Return;
class FooInterface {
public:
virtual ~FooInterface() {}
virtual uint32_t m_hw_epoch() = 0;
};
class MockFoo : public FooInterface {
public:
MOCK_METHOD0(m_hw_epoch, uint32_t());
private:
};
// ----- Test Fixture:
class FooTest : public ::testing::Test {
public:
FooTest() : FooInterfacePtr(&MockFooObj) {}
~FooTest() {}
MockFoo MockFooObj;
FooInterface* FooInterfacePtr;
};
// ----- Fakes
uint32_t hw_epoch() {
FooInterfacePtr->m_hw_epoch(); // *** How Can I access FooInterfacePtr?
return 5;
}
TEST_F(FooTest, constructor) {
}
的FooTest燈具有成員FooInterfacePtr
,我怎麼能免費功能uint32_t hw_epoch()
訪問此成員嗎?
謝謝你......
你不能用一個免費功能來做到這一點。可能是[自定義'ACTION'](https://code.google.com/p/googlemock/wiki/CookBook#Writing_New_Actions_Quickly)將更適合解決您的問題。 –
這是一個無賴,試圖避免通過接口調用免費功能。似乎你應該能夠調用成員函數,另一方面,不受建造順序控制的順序手可能是限制因素。感謝您的答覆... – user1135541