相关疑难解决方法(0)

嘲笑整个图书馆

我正在开发使用的代码boost::asio.为了测试它,我需要从这个库中模拟一组类.我正在使用Google Mock,它允许模拟虚拟方法.通常(和繁琐)的过程是为我需要使用的每个类编写一个接口.

另一方面,Google Mock Cookbook在模拟非虚拟方法时描述了一种替代方法:使用模板.我的问题是我可能需要同时模拟几个类(因此直接使用模板不起作用).所以我想:为什么不使用两级模板?我提出了以下解决方案:

// Classes to be mocked.

class RealA
{
public:
    void a() { cout << "RealA::a()" << endl; };
};

class RealB
{
public:
    void b() { cout << "RealB::b()" << endl; };
};

// Mock classes.

class MockA
{
public:
    void a() { cout << "MockA::a()" << endl; };
};

class MockB
{
public:
    void b() { cout << "MockB::b()" << endl; };
};

template<class ABFactory>
class Program
{
public:
    void setFactory(ABFactory* factory) …
Run Code Online (Sandbox Code Playgroud)

c++ mocking googletest boost-asio googlemock

5
推荐指数
1
解决办法
1455
查看次数

标签 统计

boost-asio ×1

c++ ×1

googlemock ×1

googletest ×1

mocking ×1