【发布时间】:2018-11-20 12:41:41
【问题描述】:
SUT 正在调用为其定义了 EXPECT_CALL 的外部库。 我只想在第一次调用该函数时做某事,而在其他时候忽略做任何事情(但检查它是否被调用了两次);反之亦然..即第一次调用它时什么都不做,第二次调用它时什么都不做。
// Code for the Expect Call
EXPECT_CALL(*mock_ptr, some-function(_,_)) .Times(2) .WillOnce(action1)
.WillOnce(do-nothing);
// SUT call
ASSERT_NO_THROW(sut_function(arg1, arg2));
忽略第二个(什么都不做)WillOnce,我收到一个 Gmock 警告,例如:
GMOCK 警告:test_blah-blah.cpp:321:指定的操作太少 EXPECT_CALL(*mock_ptr, some-function(,))... 预期被调用 两次,但只有 1 个 WillOnce()。 GMOCK 警告: test_blah-blah.cpp:321: 动作在 EXPECT_CALL(*mock_ptr, some-function(,))... 调用了 2 次,但只有 1 个 WillOnce() 是 指定 - 直接返回。
我应该在什么都不做的部分采取什么措施来避免收到此警告? some-function 是一个 void 返回函数。
谢谢!
【问题讨论】:
标签: unit-testing googletest googlemock