您可以在Google Test中测试SetUp的成功/失败吗?

时间:2013-12-17 14:18:58

标签: googletest

有没有办法检查SetUp代码在GTest灯具中是否实际正常工作,以便整个灯具或测试应用程序可以标记为失败而不是获得奇怪的测试结果和/或必须在每个灯具中明确检查测试

1 个答案:

答案 0 :(得分:10)

如果您将灯具设置代码放入SetUp方法,并且失败并发出致命故障(ASSERT_XXXFAIL宏),Google Test将无法运行您的测试体。所以你要写的就是

class MyTestCase : public testing::Test {
 protected:
  bool InitMyTestData() { ... }

  virtual void SetUp() {
    ASSERT_TRUE(InitMyTestData());
  }
};

TEST_F(MyTestCase, Foo) { ... }

如果MyTestCase.Foo返回false,则InitMyTestData()将不会执行。如果您的设置代码中已经存在非致命断言(即EXPECT_XXXADD_FAILURE),则可以通过编写ASSERT_FALSE(HasFailure());来生成致命断言。您可以在中找到有关故障检测的更多信息。 Google Test Advanced Guide维基页面。