EXPECT_EQ错误

时间:2018-01-16 20:55:51

标签: c++ googletest

我正在使用谷歌测试功能EXPECT_EQ来运行一个函数的测试用例。函数“find”返回一个列表并接收要查找的名称字符串。这是我的测试功能:

#include <stdio.h>

int main()
{
    int a[3] = { 0 };

    for (int i = 0; i < 3; i++)
    {
        printf("%llu %u %p\n", a + i, a + i, a + i);
    }

    return 0;
}

但是当我试图“制造”时,它给了我一个很长的错误 /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:665:71:错误:无效       操作符到二进制表达式('const Man'和'const Man')     bool operator()(const _T1&amp; __x,const _T1&amp; __y)const {return __x == __y;}

我没有正确使用EXPECT_EQ吗?如何解决此错误?

1 个答案:

答案 0 :(得分:1)

EXPECT_EQ要求为传递的项目定义相等运算符。 std::list已经有这样的运算符为每个存储的项调用相等运算符。因此,您似乎需要定义operator ==来比较Man类的两个实例是否相等:

bool operator ==(Man const & left, Man const & right)