Chr*_*ian 6 c++ multithreading googletest
我开始使用 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();
}
Run Code Online (Sandbox Code Playgroud)
我希望来自 TestThread 的所有断言,但第二个断言从来都不是测试结果的一部分。此外,测试运行不到一秒钟。我想,'boost::thread::join' 不起作用,但为什么呢?
问候, 基督徒