c++ - 改变 gmock 期望

标签 c++ unit-testing mockito googlemock

我有一个单元测试要用 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/

相关文章:

php - 无法进行单元测试 : $_SESSION empties before each test is ran

unit-testing - 我需要测试帮助程序/设置方法吗?

java - 使用 Mockito 从链式方法中捕获参数

android - 如何在 Android Studio 中调试仪器测试?

java - 无法使用在 Java 中链接接口(interface)的方法模拟类

c++ - 引用模板类型的赋值运算符需要非常量重载

c++ - 在对函数指针进行 typedef 时 * 是强制性的吗?

javascript - 开 Jest : How to consume result of jest. genMockFromModule

c++ - 没有运算符的类型 vector 的实例化=

c++ - 远程 Linux 机器上的 RTTI 检查失败