Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 是否有<;无所事事>;在Gmock的EXPECT_调用中有什么动作?_Unit Testing_Googletest_Googlemock - Fatal编程技术网

Unit testing 是否有<;无所事事>;在Gmock的EXPECT_调用中有什么动作?

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

SUT正在调用定义了EXPECT_调用的外部库。 我只想在第一次调用该函数时执行某些操作,而在另一次调用时忽略执行任何操作(但检查是否调用了两次);反之亦然。。i、 e.第一次呼叫时什么也不做,第二次呼叫时做某事

// 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中的以查找匹配操作