void*Invoke(void*api) { returnm_invokeObjs[api]->GetMethod(); } HookObject&MakeHookObj(void*api,void*stub) { m_invokeObjs[api]=new(std::nothrow)HookObject(api,stub); return*(m_invokeObjs[api]); } voidRemoveHookObj(void*api) { if(autoiter=m_invokeObjs.find(api);iter!=m_invokeO...
.will( returnValue(1) | repeat(1, 20) | returnObjectList(r1, r2) | invoke(func_stub) | ignoreReturnValue() | increase(from, to) | increase(from) | throws(exception)) [.then(returnValue(2))] [.id("some-mocker-id")] } 注: 1、扩展关键字分类: expects里面的叫匹配关键字(Matcher);...
本文主要介绍gtest 如何和mockcpp集成,先打个预防针,不太好搞,慢慢来,有问题可以邮件smallpen@mail.ustc.edu.cn 交流。 2、Visual Studio 编译 mockcpp gtest + mockcpp中的mockcpp指的是nockcpp.lib 库, 使用mockcpp时是直接使用库和头文件,而不是每次都编译一下。有专门的博客介绍如何编译。 参见https://blog...
.will( returnValue(1) | repeat(1, 20) | returnObjectList(r1, r2) | invoke(func_stub) | ignoreReturnValue() | increase(from, to) | increase(from) | throws(exception)) [.then(returnValue(2))] [.id("some-mocker-id")] } 注: 1、扩展关键字分类: expects里面的叫匹配关键字(Matcher);...
(1)mock规范:每个MOCKER(function)开始,跟一系列的.stubs、.with、.will等的内容的整体,称为一个mock规范。(2)核心关键字:指stubs/defaults/expects/before/with/after/will/then/id等这些直接跟在点后面的关键字。(3)扩展关键字:指once()/eq()/checkWith()/returnValue()/repeat()等这些作为核心关键字...
| invoke(func_stub) | ignoreReturnValue() | increase(from, to) | increase(from) | throws(exception)) [.then(returnValue(2))] [.id("some-mocker-id")] } 注: 1、扩展关键字分类: expects里面的叫匹配关键字(Matcher); with里面的叫约束关键字(Constraint); ...
.will(invoke(print_fake_helloworld)); ret = mockcpp_helloworld(); EXPECT_EQ(false, ret); } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 运行上面的用例,会运行成功,且实际打印的是: ...
MOCKER(DemoFunc1).defaults().will(invoke(DemoFunc1_stub)); } virtual void TearDown() { /* 该函数在每个测试用例执行完成后会执行 */ GlobalMockObject::verify(); } }; ssize_t writeTest(int fd, const void *buf, size_t count) { ...
void test_should_invoke_validators_in_order() { MockObject<IUserValidate> validator0; MockObject<IUserValidate> validator1; MockObject<IUserValidate> validator2; /// SequenceUserValidator::Validators validators; validators.push_back(validator0); validators.push_back(validator1);...
// 测试用例 void test_should_invoke_validators_in_order() { MockObject<IUserValidate> validator0; MockObject<IUserValidate> validator1; MockObject<IUserValidate> validator2; /// SequenceUserValidator::Validators validators; validators.push_back(validator0); validators.push_back(validator1); ...