【发布时间】:2016-11-29 17:18:08
【问题描述】:
我根据接收到的事件类型匹配模拟侦听器的结果。我要定义的期望是“您应该收到一次此类事件并断言一次以下事件。任何其他事件对我来说都无关紧要”。
这是我目前写的断言
EXPECT_CALL(listener, changed(Field(&Event::type, Event::Type::processed)).WillOnce(/*Blablabla*/);
理论上我的听众应该接到两个电话。一个 Event::Type::processed 和一个 Event::Type::done。我明确不想“断言”关于后者的任何事情。 尽管如此,Matcher 似乎会成功匹配 Event::Type::processed,触发 WillOnce... 但会在测试结束时告诉我,我的期望 Times(1) 已经饱和,因为虽然它没有t 匹配第二个事件(Event::Type::processed)它仍然增加这个期望的整体计数器......
这太烦人了,我只是找不到解决办法。
不用说,VerifyAndClear 在这里无济于事,因为这两个事件在一次调用中发生,我不打算将它解耦,这对我的模型毫无意义。
【问题讨论】:
标签: unit-testing googletest assertions gmock