在gtest中清除HasFailure标志

时间:2018-11-21 14:27:48

标签: c++ googletest

我有一个单元测试,用于测试函数在一系列输入上是否工作良好:

TEST_F( something, something) {
  std::vector<int> inputFileNumber = { 0, 1 , 2, 3 };
  for(auto i : inputFileNumber ) {
    res = testMethodOverFile(i);
    EXPECT_NEAR(res, results[i], 0.01);
    logIfHasFailure(i);
  }
}

我想知道哪些输入失败,所以我可以使用:: testing :: Test :: HasFailure。不幸的是,一旦设置了标志,我将无法清除它,并且以下所有索引也会被记录。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可能应该改用参数化测试:

TEST_P( something, something)
{
   auto i{GetParam()};
   res = testMethodOverFile(i);
   EXPECT_NEAR(res, results[i], 0.01);
}  

INSTANTIATE_TEST_CASE_P(Default, something, testing::Values(0, 1, 2,3 ));