在Hippomocks (https://www.assembla.com/spaces/hippomocks/wiki/Home)的官方版本3.1中,曾经有一个构造模拟对象的MockRepository::ClassMock (与非虚拟类方法的MockRepository::InterfaceMock相反),它在处理非虚拟类方法时非常有用。
在我看来,当前版本的MockRepository::Mock所做的一切都是MockRepository::InterfaceMock做的。是否有可能用当前版本构造模拟对象?
我不使用3.1版本的理由:我需要同样非常有用的ExpectCallFunc来测试不属于类的函数,这些函数是后来引入的。
不使用新布局的理由:放置新将在被Hippomocks模拟之后构造对象,从而“重置”以前由Hippomocks修改的虚拟函数表。
发布于 2014-01-19 22:11:18
不,没有。现在可以模拟方法和成员,据我所知,这些方法和成员应该能捕捉到类需要存在的所有情况。您可以使用MockRepository::MemberMock(obj, &Class::iValue)初始化该成员。
如果您真的需要ClassMock,最好先考虑一下为什么需要它;在干净的TDD中,它从来没有必要,所以可能需要重构一些东西来避免这种情况。同样,您也可以支持ExpectCallFunc;它是一个相当独立的功能,因此它应该是合理的可移植的。但是,如果您这样做了,请从Github中获取当前的git版本,因为它已经验证了C方法在Linux/Windows/Mac X86和X86-64以及Raspbian/ARM上的模拟。
https://stackoverflow.com/questions/21025994
复制相似问题