Unit testing 是否有<;无所事事>;在Gmock的EXPECT_调用中有什么动作?
SUT正在调用定义了EXPECT_调用的外部库。 我只想在第一次调用该函数时执行某些操作,而在另一次调用时忽略执行任何操作(但检查是否调用了两次);反之亦然。。i、 e.第一次呼叫时什么也不做,第二次呼叫时做某事Unit testing 是否有<;无所事事>;在Gmock的EXPECT_调用中有什么动作?,unit-testing,googletest,googlemock,Unit Testing,Googletest,Googlemock,SUT正在调用定义了EXPECT_调用的外部库。 我只想在第一次调用该函数时执行某些操作,而在另一次调用时忽略执行任何操作(但检查是否调用了两次);反之亦然。。i、 e.第一次呼叫时什么也不做,第二次呼叫时做某事 // Code for the Expect Call EXPECT_CALL(*mock_ptr, some-function(_,_)) .Times(2) .WillOnce(action1) .WillOnce(do-nothing); // SUT call ASSER
// 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,某些函数(,)。。。预计将被调用
两次,但只有1个WillOnce()。GMOCK警告:
test_blah-blah.cpp:321:EXPECT_调用(*mock_ptr,
一些函数(,)。。。调用了2次,但只调用了1个WillOnce()
指定-直接返回
在“不做任何事”部分,我应该采取什么措施来避免收到此警告?
有些函数是空返回函数
谢谢
// Code for the Expect Call
EXPECT_CALL(*mock_ptr, some-function(_,_)) .Times(2) .WillOnce(action1)
.WillOnce(Return());
// SUT call
ASSERT_NO_THROW(sut_function(arg1, arg2));
为第二个(或第一个)添加Return()。WillOnce解决了问题。参考github中的以查找匹配操作