访问Google测试固定装置会员

Access Google Test fixture member

本文关键字:装置 Google 测试 访问      更新时间:2023-10-16

我正在尝试模拟硬件抽象层函数,这是uint32_t hw_epoch()通过编写伪造的,并且是通过假呼叫模拟方法来验证hw_epoch()函数的。因此,考虑以下简化的代码:

#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) {
}

脚固定装置具有成员FooInterfacePtr,我如何从免费功能uint32_t hw_epoch()访问此成员?

谢谢...

per @πάνταῥεῖ,不可能使用自由功能进行操作。自定义操作是可能的解决方案。