Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 多线程程序的Google测试(gtest):最佳实践_C++_Multithreading_Googletest_Fixtures - Fatal编程技术网

C++ 多线程程序的Google测试(gtest):最佳实践

C++ 多线程程序的Google测试(gtest):最佳实践,c++,multithreading,googletest,fixtures,C++,Multithreading,Googletest,Fixtures,多线程程序的最佳gtest实践是什么。我想产生2个线程,进行一些通信并断言各种条件 简易解决方案: void Func1() { ... ASSERT_EQ(...) ... } void Func2() { ... ASSERT_EQ(...) ... } TEST(MultiThread, Test) { std::thread one(Func1), two(Func2); one.join(); two.join(); } 这种模式似乎有点颠倒。TEST()。有更好的方法

多线程程序的最佳gtest实践是什么。我想产生2个线程,进行一些通信并断言各种条件

简易解决方案:

void Func1() { ... ASSERT_EQ(...) ... }
void Func2() { ... ASSERT_EQ(...) ... }

TEST(MultiThread, Test) {
   std::thread one(Func1), two(Func2);
   one.join(); two.join();
}
这种模式似乎有点颠倒。
TEST()。有更好的方法吗?我正在想象一个类似于设置线程/连接线程的装置,而
TEST()
,只包含两个lambda定义,将完成这项工作。Fox额外的一点是,这样一个夹具可以重复用于多个测试吗