我和operator[]上了一节课,就像这样:
class Base
{
public:
virtual ~Base(){}
virtual const int & operator[]( const unsigned int index ) const = 0;
};如何使用google模拟框架为此方法创建模拟类?
我试过这个:
class MockBase : public Base
{
public:
MOCK_CONST_METHOD1( operator[],
const int& ( const unsigned int )
);
};但这会产生下一个错误:
error: pasting "]" and "_" does not give a valid preprocessing token
error: pasting "]" and "_" does not give a valid preprocessing token
error: pasting "]" and "_" does not give a valid preprocessing token
error: pasting "]" and "_" does not give a valid preprocessing token发布于 2011-06-27 20:24:53
MOCK_METHOD#宏在运算符上不起作用。this message中给出的解决方案是创建一个常规的模拟方法:
class Base {
public:
virtual ~Base () {}
virtual bool operator==(const Base &) = 0;
};
class MockBase: public Base {
public:
MOCK_METHOD1(Equals, bool(const Base &));
virtual bool operator==(const Base & rhs) { return Equals(rhs); }
}; https://stackoverflow.com/questions/6492664
复制相似问题