我有一个声明了以下运算符的类:
Foo::operator int() const
{
return m_bar; // a private variable with type int of the class Foo
}
我想模仿Foo班,但我在这个问题上遇到了困难。我在网上查了一下,在这种情况下看不到像int()这样的转换运算符的解决方案。有人可以帮忙吗?谢谢。
答案 0 :(得分:0)
我不确定是否有办法直接模拟转换操作符,但这些方面的内容可行:
class MockFoo : public Foo {
public:
MOCK_CONST_METHOD0(conversionOperator, int());
virtual operator int() const { return conversionOperator(); }
};
这将按预期使用:
TEST(ConversionOperator, Returns42) {
MockFoo f;
EXPECT_CALL(f, conversionOperator()).WillOnce(Return(42));
int value = f;
ASSERT_EQ(42, value);
}