C****0 发帖数: 53 | 1 最近需要做一个多线程的unit test,但是总是有问题,所以不是很清楚是我的方法有问
题还是gmock不支持多线程。
大体是这样的
1.原来的class是一个QThread的subclass:
class aSubClassOfQthread: public QThread{
...
...
public:
int myFunction();
}
2.然后我用gmock mock一个aSubClassOfQthread
3.测试
TEST(SubClassOfQthread,test1){
aSubClassOfQthread thread1;
EXPECT_CALL(thread1.myFunction()).Times(1); // 期望Call 一次
int check1 = thread1.myfunction(); // 看下返回值
EXPECT_EQ(1, check1); // 看下返回值和预期是否一样
}
问题是 EXPECT_EQ(1, check1) 报错,说返回的是int function的 default value 0.
就算我在myFunction里什么都不干,直接让他返回1,还是报错说返回的是0。
哪位朋友能帮我看看? 多谢!
BTW gmock的作者貌似是Dr. Wan, 一个大牛.
如果有幸让Dr. Wan看到,希望来帮忙解释一下。 |
|