从线程调用mocked方法时,将忽略模拟ON_CALL返回值

时间:2016-04-14 12:32:15

标签: c++ multithreading unit-testing googlemock

我有一个发送者模拟,出于某种原因,无论何时从线程调用它都不会返回设置返回值(true),而是返回默认值(false)。

ON_CALL(sender, sendMessage(A<MsgType>())).WillByDefault(Return(true));

因此,当主进程调用它时,它正确地返回true,但是一旦从线程调用它就返回false并在控制台上给出默认值消息。

当单步执行google模拟时,我可以看到当从线程调用该方法时,应该保存返回值的返回类型容器为空,但是从主进程中它包含返回值。在调试时,mock和容器似乎有正确的地址。

关于为什么会发生这种情况的任何想法?

0 个答案:

没有答案