【发布时间】:2021-07-28 23:54:09
【问题描述】:
有没有办法检查 SetUp 代码是否在 GTest 夹具中实际工作正常,以便可以将整个夹具或测试应用程序标记为失败,而不是得到奇怪的测试结果和/或必须在每个测试?
【问题讨论】:
标签: googletest
有没有办法检查 SetUp 代码是否在 GTest 夹具中实际工作正常,以便可以将整个夹具或测试应用程序标记为失败,而不是得到奇怪的测试结果和/或必须在每个测试?
【问题讨论】:
标签: googletest
如果您将夹具设置代码放入 SetUp 方法中,但它失败并发出致命错误(ASSERT_XXX 或 FAIL 宏),Google Test 将不会运行您的测试主体。所以你只需要写
class MyTestCase : public testing::Test {
protected:
bool InitMyTestData() { ... }
virtual void SetUp() {
ASSERT_TRUE(InitMyTestData());
}
};
TEST_F(MyTestCase, Foo) { ... }
如果 InitMyTestData() 返回 false,则 MyTestCase.Foo 将不会执行。如果您的设置代码中已经有非致命断言(即EXPECT_XXX 或ADD_FAILURE),您可以通过编写ASSERT_FALSE(HasFailure()); 从它们生成致命断言。您可以在Google 测试Advanced Guide 中找到有关故障检测的更多信息维基页面。
【讨论】: