我有一个单元测试要用 GMock 编写。但是,我主要熟悉 Mockito。我会在 Mockito 中写的是:
Mockito.verify(mock, Mockito.never()).someFunctionCall(Matchers.<String>any());
doSomething(mock);
Mockito.verify(mock, Mockito.times(1)).someFunctionCall(Matchers.<String>any());
doSomethingElse(mock);
这对应于验证 doSomething
永远不会调用 someFunctionCall
但恰好被 doSomethingElse
调用一次。
我如何使用 GMock 完成同样的事情?
EXPECT_CALL(mock, someFunctionCall(_)).Times(0);
doSomething(mock);
EXPECT_CALL(mock, someFunctionCall(_)).Times(1);
doSomethingElse(mock);
显然行不通,因为期望叠加了。
最佳答案
Mock::VerifyAndClearExpectations/Mock::VerifyAndClear 可用于这些目的。
关于c++ - 改变 gmock 期望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19803034/