EXPECT_CALL(foo, Bar(1)) .Times(1);预期foo.Bar(1)将被调用一次 foo.Bar(1);实际调用foo.Bar(1) } 在这个例子中,我们首先定义了一个Mock类MockFoo,并在其上声明了一个虚拟方法Bar。然后,在测试函数FooTest.TestBar中,我们创建了一个MockFoo对象foo,并使用EXPECT_CALL宏设置了对foo.Bar(1)的预期调用...
EXPECT_CALL(mock, Foo(5)).Times(1).WillOnce(testing::Return(10)); ASSERT_EQ(mock.Foo(5), 10); } 代码解析: 定义了一个纯虚接口MyInterface,其中包含一个纯虚函数Foo,需要在派生类中实现。 使用Google Mock 提供的MOCK_METHOD宏生成MockMyInterface类,该类继承自MyInterface并实现了Foo函数。MOCK_METH...
EXPECT_CALL(*mockerDevice, MOCK_FUNCTION(_, _)).Times(1).WillOnce(DoAll(SetArrayArgument<1>(expectValues, expectValues+254), Return(32))); //期望receivedatafromdevice函数调用1次,传出的数据是expectValues数组中的前255个内容,并且返回接收数据长度为32个字节 MOCK_FUNCTION:宏是CppFreeMock中定义的,...
EXPECT_CALL(mock, recv(,)).Times(1).WillOnce(SetArgReferee<1>(64));//期望调用recv函数1次并且recv函数的第一个参数(从0起索引)赋值为64。 recv的函数mock后的期望调用动作(Action)是对第一个参数(从0起索引)也就是int& len进行赋值,表明期望recv函数跑完之后,成功接收到64个字节的内容。 鉴于被测函...
我一般用oncall 指定mock对象调这个函数时返回值是什么,一般是用于辅助测试的。比如下面这样 TEST_F(MyCoreTest, DispatchEventTriggerConfigDispatcher) { EXPECT_CALL(*config_dispatcher_mock_, dispatchConfig(_)).Times(2); ON_CALL(*conflict_solver_mock_, solve).WillByDefault([](std::map<IStrategy::Pr...
EXPECT_CALL(mock_if_impl,some_func).Times(::testing::AtLeast(1)).WillOnce(::testing::Return(true)); EXPECT_CALL是有点难理解的,接下来,我们详细说一说。 语法定义 EXPECT_CALL(mock_object,method(matcher)).Times(cardinality).WillOnce(action).WillRepeatedly(action); ...
EXPECT_CALL(#1, #2(#3)).Times(5).WillOnce(Return(100)) .WillOnce(Return(150)) .WillRepeatedly(Return(200)); 表示第一次返回100,第二次调用返回150,后面全部返回200,以此类推。 ON_CALL和EXCEPT_CALL相当于设置桩函数的属性设置,因此应当在桩函数调用前进行设置。除了TEST宏函数定义和main函数之外,在...
#include <gtest/gtest.h> #include <gmock/gmock.h> class MockClass { public: MOCK_METHOD1(foo, int(int)); }; TEST(MockTest, FooTest) { MockClass mockObj; EXPECT_CALL(mockObj, foo(42)) .Times(1) .WillOnce(testing::Return(100)); int result = mockObj.foo(42); EXPECT_EQ(result...
给Mock设置EXPECT_CALL 宏有两个参数:第一个是模拟对象,然后是方法及其参数参数。注意,两者之间用逗号(,)隔开,而不是句号(.)。如果方法没有重载,宏也可以在没有匹配器的情况下被调用 在gMock中,我们使用EXPECT_CALL()宏来设置模拟方法的期望。一般语法是: 1.Cardinalities: How Many Times Will It Be Called...
EXPECT_CALL(mockFoo, getPosition(testing::_)) .Times(2) .WillOnce(testing::Return(335)) .WillOnce(testing::Return(455)); int val = mockFoo.getPosition(0); //355 int val2 = mockFoo.getPosition(1); //455 std::cout << "Returned Value: " << val << " " << val2 << std::...