kMock 常见问题解答
当我在模拟对象上调用方法时,会调用真实对象的方法。有什么问题吗?
为了让一个方法被模拟,它必须是“虚拟的”,除非你使用 高性能依赖注入技术。
我可以模拟可变参数函数吗?
您不能模拟可变参数函数(即采用省略号(...)的函数
参数)直接在 kMock 中。
问题是,一般来说,模拟对象“没有办法”知道如何 许多参数被传递给可变参数方法,以及参数的类型 是。只有基类的作者知道协议,我们无法查看 进入他或她的头脑。
因此,要模拟这样的函数,用户必须教导模拟对象如何 找出参数的数量及其类型。一种方法是 提供该函数的重载版本。
省略号参数继承自 C,并不是真正的 C++ 功能。他们是 使用不安全,并且不适用于具有构造函数或 析构函数。因此我们建议在 C++ 中尽可能避免使用它们。