枚举和对象之间的gtest比较

时间:2013-08-19 15:52:02

标签: c++ testing googletest

我使用

时遇到问题
EXPECT_EQ(expected, actual)

我有一种情况,预期是枚举,实际是某个对象。

此对象使用此枚举对operator ==进行重载,但是它执行的问题 if (expected == actual)而不是if (actual == expected),所以尝试使用枚举作为lhs是错误的,有没有办法“覆盖”这个?我尝试用特定模板做一些事情, 但是没有用。

2 个答案:

答案 0 :(得分:2)

您可以将对称比较定义为非成员函数:

bool operator==(my_enum e, my_object const & o) {return o == e;}

答案 1 :(得分:0)

如果你使operator==成为非成员,左手操作数可以是你的枚举类型而不是类类型。