我已经编写了一个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
?
答案 0 :(得分:3)
您可以将EXPECT_EQ用作流,这样:
EXPECT_EQ(out.field1, val.field1) << m_csv_line;
应该做你想要的。