谷歌模拟的ByRef方法
我有一个将布尔值作为参考参数并返回整数的类: class Foo { public: Bar my_bar; virtual int myMethod(bool &my_boolean) = 0; } /*...*/ int Foo::myMethod(bool &my_boolean){ if (my_bar == NULL){ my_boolean = false; return -1; } else{ my_boolean = true; return 0; } } 我为此类创建了一个模拟: class MockFoo : public Foo { MOCK_METHOD1(myMethod,int(bool &my_boolean)); } 我在如何设置这种功能的期望方面遇到问题,因为我需要将返回值和设置为特定值的参考参数以正确创建我的单元测试.我可以用gmock处理这种​​功能吗
14 2023-02-24
编程技术问答社区
GMOCKing接口时,std::any的类型不完整
我对这段代码有一个非常奇怪的编译问题: #include #include struct Class { virtual std::any get(int, int) = 0; }; struct MockClass: Class { MOCK_METHOD2(get, std::any(int, int)); }; int foo() { MockClass dd; } 错误 gcc 9.1.0: /usr/include/c++/9.1.0/type_traits:131:12: error: incomplete type ‘std::is_copy_constructible >’ used in nested name specifier clang 8.0.0: /usr/bin
68 2022-08-22
编程技术问答社区
在googlemock中,一个模拟类可以继承另一个模拟类吗?
一个模拟类可以从 googlemock 中的另一个模拟类继承吗?如果是,那么请帮助我理解为什么这不起作用. class IA { public: virtual int test1(int a) = 0; }; class IB : public IA { public: virtual float test2(float b) = 0; }; class MockA : public IA { public: MOCK_METHOD1(test1, int (int a)); }; class MockB : public MockA, public IB { public: MOCK_METHOD1(test2, float (float b)); }; 我得到 MockB 的 cannot instantiate abstract class 编译器错误,但 MockA 没有 解决方案 如果你打算使用多重继承,你应该使用虚拟继承.
254 2022-07-19
编程技术问答社区
当同一类中的函数相互调用时,如何gmock这些函数?
假设这里是这样的: class base() { virtual func1()=0; virtual func2()=0; virtual func3()=0; } class Inheritance:public base { virtual func1(){ func2(); func3() }; virtual func2(){ /* do something */ }; virtual func3(){ /* do something */ }; } 现在我想对 func1() 进行单元测试,并模拟 func2() 和 func3(); 那么是否可以模拟 func2() 和 func3() 而 func1() 知道调用 mock-func2() 和 mock-func3() 而不调用真正的 func2() 和 func3()? 顺便说一句,我是使用类工厂来初始化类的,所以实际情况可能会复杂一些 谢谢~ 解决方案
1450 2022-07-17
编程技术问答社区