我目前使用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++ 0x解决方案没有问题,则应该将该标记添加到您的问题中。 – 2011-06-26 09:37:36
完成..可以用'标准'C++完成课程但这是更多的打字; P – stijn 2011-06-26 16:15:53