如何自定义Google Test失败消息?

时间:2018-12-20 19:51:48

标签: c++ unit-testing testing googletest

我已经编写了一个Google测试,如下所示,该测试将一些计算值与预期存储在CSV文件中的值进行了比较。

class SampleTest : public ::testing::Test{
public:

    void setupFile(const std::string& filename) {
       // open csv file here
    }

    void checkRow(ComputedRowValue val) {
        CSVParsedOutput out;
        m_csv_f.readAndParseLine(out);
        EXPECT_EQ(out.field1, val.field1);
        EXPECT_EQ(out.field2, val.field2);
        EXPECT_EQ(out.field3, val.field3);
        m_csv_line++;
    }


protected:
    CSVFile m_csv_f; // CSV file with expected results
    int m_csv_line = 0;
};

这将在某些巨大的文件大小上运行,并且失败时将仅告诉我哪个值不匹配。如何覆盖EXPECT_EQ输出的错误消息以同时打印m_csv_line

1 个答案:

答案 0 :(得分:3)

您可以将EXPECT_EQ用作流,这样: EXPECT_EQ(out.field1, val.field1) << m_csv_line; 应该做你想要的。