我已针对virtual
功能测试了Google Mock,但无法为non-virtual
执行此操作。我没有理解" hi-perf依赖注入" 的概念。
下面是具有一个non-virtual
功能的类。我想用Google Mock来测试这个功能。为简单起见,我删除了核心部分并保留了单个return
语句。
以下是示例:
// gtest and gmock files are added
class DetectorGPIO
{
DetectorGPIO(void);
virtual ~DetectorGPIO() {}
StartPulseHigh();
};
BOOL DetectorGPIO::StartPulseHigh()
{
return 1;
}
class MockDetectorGPIO : public DetectorGPIO
{
public:
MOCK_METHOD0(StartPulseHigh,BOOL(void));
};
我错过了任何概念吗?
我是Google Mock的新手。任何帮助将不胜感激。
答案 0 :(得分:0)
您可以在Google Mock Cookbook中阅读有关hi-perf依赖注入的内容。我认为它清楚地描述了使用这个概念的正确方法。
在这种类型的嘲弄中,MockDetectorGPIO
不需要继承DetectorGPIO
。在您想要使用具体类(或模拟)的地方,您应该使用模板:
template <class Detector>
void ConfigureDetectorGPIO(Detector* pDetector)
{
pDetector->StartPulseHigh();
}
请注意,在Google Mock中,您没有义务模拟现有方法。