相当于Hippomocks'以前存在的MockRepository :: ClassMock

时间:2014-01-09 16:37:00

标签: unit-testing mocking virtual expectations hippomocks

在Hippomocks的官方版本3.1(https://www.assembla.com/spaces/hippomocks/wiki/Home)中曾经有一个MockRepository::ClassMock来构建模拟对象(与MockRepository::InterfaceMock相反而不是),这在非常有用的时候非常有用。处理非虚拟类方法。

当前版本的MockRepository::Mock执行MockRepository::InterfaceMock在我看来所做的事情。是否有可能使用当前版本构建模拟对象?

我没有使用版本3.1的基本原理:我还需要非常有用的ExpectCallFunc来测试不属于稍后介绍的类的函数。

不使用贴图新的基本原理:Placement new会在被Hippomocks嘲笑后构建对象,从而“重置”之前由Hippomocks改变的虚拟函数表。

1 个答案:

答案 0 :(得分:2)

不,没有。您现在可以模拟方法和成员,据我所知,应该捕获您的类需要存在的所有情况。您可以使用MockRepository::MemberMock(obj, &Class::iValue)初始化该成员。

如果你真的需要ClassMock,最好先考虑为什么需要它;在干净的TDD中,它从来没有必要,因此可能需要重构以避免这种情况。然后,您还可以向后移植ExpectCallFunc;它是一个相当独立的功能,所以它应该合理地向后移植。如果你这样做,请从Github获取当前的git版本,因为它已经验证了Linux / Windows / Mac X86和X86-64以及Raspbian / ARM的C方法模拟。