0
我有一些C++代码如下:C++ - 单位创建间谍测试
class MyClass
{
public:
MyClass(OtherClass *obj)
{
obj_ = obj;
}
void myMethod()
{
// Do something
int value = obj_->otherMethod();
// Do something else
}
private:
OtherClass *obj_;
}
我想创建一个单元测试,测试的myMethod()
功能。不幸的是,OtherClass
是一个外部库,它的方法没有声明为虚拟的(所以我不能继承这些方法并将它们存储在模拟中)。我对Mockito有一些经验,我可能会为此使用间谍。但我似乎无法在C++中找到等价物。
我现在正在使用googletest框架和这个问题的上下文(如果有帮助的话)在ROS中,我实际上试图将它们剔除出tf::TransformListener
。
问题1:在这种情况下,我有可能不知道并可以利用间谍的选择吗?
问题2:如果没有,有没有快速和容易办法,我调整自己的代码,这样我可以利用一个模拟的?