googletest-自动打印出哪个EXPECT语句失败

问题描述 投票:0回答:1

如果一个测试包含多个EXPECT_*语句

TEST_F(TestClass, ServerTest) {
    // Start server
    server_.start();
    usleep(200000);
    EXPECT_TRUE(server_.running());

    server_.stop();
    EXPECT_FALSE(server_.running());
}

我如何配置google-test以输出哪个EXPECT_*实际失败?

c++ googletest
1个回答
0
投票

如果断言/期望失败,则可以使用插入运算符<<打印消息:

EXPECTED_TRUE(...) << "... turned out to be false";

此外,GoogleTest框架还将为您提供失败的assert / expect的行号和源文件。


不相关的注释,在此处使用睡眠语句不是一个好主意。这通常是片状测试的原因。

此外,server_.start()似乎就像是在测试治具构造函数中进行的调用。如果需要声明某些条件,可以将其放在测试夹具SetUpTearDown methods中。

© www.soinside.com 2019 - 2024. All rights reserved.