如何使用gmock模拟基于范围的运算符



我有一个从std::map 继承的类

class LeMap : public std::map<int,int>
{
...
};

我有另一个类应该循环到它的elments上:

class LeMapUser {
LeMap mMap;
public:
void printElements()
{ 
for( auto& element : mMap ) { whatever(element); }
}
private:
void whatever(int element){ ... }
};

是否可以模拟LeMap以使用gmock测试whatever?简单地说:我应该重载什么运算符来执行循环?

AFAIK基于范围的for循环需要mMap对象具有返回迭代器的begin()成员。迭代器需要有一个后增量运算符来遍历范围。此外,mMap必须有一个end()成员,返回一个与迭代器相当的值(但不一定是迭代器本身(。

最新更新