0
我有一个单元测试代码,我有一个模拟函数foo
。当我使用ON_CALL构造来指定动作时,它不执行my_action,而是执行foo。ON_CALL不起作用,但EXPECT_CALL起作用
ON_CALL(my_mock, foo(my_matcher()))
.WillByDefault(DoAll(my_action(), Return(0)));
但是当我做EXPECT_CALL,它的工作原理。在我的情况下,foo()只会被调用一次。我试图看看它可能会有所不同。但谷歌搜索或搜索stackoverflow没有帮助。下面是工作的EXPECT_CALL:
EXPECT_CALL(my_mock, foo(my_matcher()))
.WillOnce(DoAll(my_action(), Return(0)));
我不明白他们是如何给予相同的my_matcher和my_action不同。
谢谢,但我的问题没有回答。在这两种情况下,期望都会得到满足,因为我使用相同的输入进行相同的单元测试。 ON_CALL如何不导致my_action被执行,而EXPECT_CALL呢? – Gops
正如我所说的,'ON_CALL'只能在预期通过呼叫完成时运行。如果你没有定义'EXPECT_CALL',那么没有什么可以实现的。 – VladLosev