【发布时间】:2011-05-28 10:20:49
【问题描述】:
我目前正在使用 HippoMocks 作为模拟框架,无法弄清楚如何在下面的代码中模拟纯虚方法MockMe()。我确实不想要模拟任何非虚拟方法(这甚至可能是不可能的),而是希望它们做它们应该做的事情并调用模拟的虚拟方法。
struct A
{
void Run() { RunImpl(); }
virtual void RunImpl() = 0;
};
struct B : public A
{
//implement A::RunImpl
void RunImpl() { MockMe(); }
//this one I want to mock
virtual void MockMe() = 0;
};
MockRepository mocks;
B* b = mocks.InterfaceMock< B >();
mocks.OnCall( b, B::MockMe );
b->Run(); //throws NotImplementedException for Run()
有什么方法可以让它与 HippoMocks 一起工作?还是使用其他框架?还是进行一些源代码修改?
【问题讨论】:
标签: c++ unit-testing mocking c++11