gpt4 book ai didi

c++ - HippoMocks:是否可以模拟非虚拟方法?

转载 作者:行者123 更新时间:2023-11-30 05:44:41 25 4
gpt4 key购买 nike

我已经开始使用 HippoMocks 编写单元测试。我想知道是否可以模拟非虚类方法?

初看代码似乎表明该框架仅支持虚拟方法。但由于它支持模拟简单的 C 函数,因此应该可以对非虚拟类方法执行相同的操作。

有什么办法可以实现吗?

最佳答案

这并非不可能,但它会导致非常奇怪的使用机制——或者不可能实现线程安全。

C 函数总是被 mock 。在那种情况下,它总是重定向到模拟,你不能再调用原始的。

C++ 虚函数仅针对请求的对象进行模拟,任何其他对象仍将在那里具有常规函数。

C++ 非虚函数看起来像虚函数,但只能在每个类级别上模拟。您的编译器也很可能会内联这些函数,使其不太可能可靠。

我从某人那里得到了一个补丁,只是盲目地应用了它,并且遇到了所描述的问题。您需要 100% 确定对该成员函数的任何访问都不是内联的,这几乎是不可能的。

关于c++ - HippoMocks:是否可以模拟非虚拟方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29675688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com