EXPECT_CALL和ON_CALL是设计用于模拟对象的宏。通常用例如下:
EXPECT_TRUE( condition ); ASSERT_TRUE( condition ); EXPECT_FALSE( condition ); ASSERT_FALSE( condition ); //二元比较 //等于 EXPECT_EQ( val1 , val2 ); ASSERT_EQ( val1 , val2 ); //不等于,注意比较空指针的时候,使用EXPECT_NE( ptr , nullptr) 而不是 EXPECT_NE( ptr , NULL) EXPECT...
{EXPECT_CALL(*mockArithmetics,plus(Gt(1),Gt(1))).Times(AnyNumber()).WillRepeatedly(Return(98));EXPECT_CALL(*mockArithmetics,minus(Lt(100),Le(100))).Times(AnyNumber()).WillRepeatedly(Return(98));EXPECT_EQ(98,transcript->compute(98, 99, 100)); } TEST_P(test_suite_name, test_name...
红色代表未跑到的代码,蓝色代表测试到的代码。 语法:EXPECT_CALL 使用场景:对MOCK函数返回值进行模拟,并设置函数入参的期待。 例子 我们使用EXPECT_CALL测试 HIGH_LEVEL的分支。 MOCK参数任意匹配 使用场景:不关注MOCK函数参数时使用, 可以 使用下划线 —,进行任意匹配。 gtest相关文章 Google Test单元测试语法教程 基...
1TEST(IsEvenTest, EqTest)2{3EXPECT_FALSE(IsEven(1));4EXPECT_TRUE(IsEven(2));5} 上面可以看到,编写一个测试案例是多么的简单。我们使用了TEST这个宏,它有两个参数,这两个参数的定义是:[TestSuiteName,TestCaseName],我的理解是TestSuiteName是对某个模块总案例名,TestCaseName是这个案例中某个case的名字...
到期望结果的比对过程中,用于判断是否满足预期的断言宏。它是Google Test(一个C++测试框架)提供的一种断言方法,用于在单元测试中对函数的输出结果进行验证。 Google Test Expe...
WORKED with ON_CALL & EXPECT CALL its my first time in github open source but this code passed the test with both ON_CALL and EXPECT_CALL #include "gtest/gtest.h" #include "gmock/gmock.h" struct S { virtual int f(int n) = 0; }; struct MockS : S { MOCK_METHOD(int, f, (int...
call#1 不匹配 exp#2 所以exp#1 被尝试和匹配。 call#2 与exp#2 匹配。 两个调用只匹配一次,因此它们被认为是满意的并且测试通过了。 当多个 EXPECT_CALL 能够匹配调用时,棘手的部分就开始了。让我们考虑以下示例: TEST(Examples, TheSameArgumentsGoingToFail) // Test fails! { SomeMock mock; EXPECT_CALL...
g++ sample.cc -o sample -lgtest -lpthread googlemock gmock/gmock.h libgmock.a libgmock_main.a GoogleTest 一.断言 gtest中的断言分成两大类: ASSERT_\*系列:如果检测失败就直接退出当前函数 EXPECT_\*系列:如果检测失败发出提示,并继续往下执行 ...
之前在完成interface_mock.cpp的时候说打桩还没有全部完成,剩下的工作就在这个TEST中了,就是通过ON_CALL/ EXPECT_CALL来设定桩函数的返回值,这2个宏的具体说明如下: ON_CALL(#1, #2(#3)).WillByDefault(Return(#4)); #1表示mock对象 #2表示想定义的那个方法名称。