gpt4 book ai didi

c++ - 在 gtest 中运行线程

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:50:42 25 4
gpt4 key购买 nike

我开始使用 gtest 实现一些测试。我有一些方法,从外部请求数据,这需要一些时间。所以我想使用线程并行进行。为了测试,我做了一些简单的例子:

void TestThread(void) {
ASSERT_EQ(1,2);
boost::this_thread::sleep_for(boost::chrono::seconds(5));
ASSERT_EQ(2,3);
}

TEST(MySuite, MyTest) {
boost::thread myThread(TestThread);
ASSERT_EQ(0,0);
myThread.join();
}

int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv);

return RUN_ALL_TESTS();
}

我期望来自 TestThread 的所有断言,但第二个断言从来不是测试结果的一部分。此外,测试运行不到一秒钟。我想,'boost::thread::join' 不起作用,但为什么呢?

问候,基督徒

最佳答案

如果断言失败,ASSERT_xxx() 将中止测试。 EXPECT_xxx 不会。

关于c++ - 在 gtest 中运行线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45615731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com